Zend_Auth和数据库会话SaveHandler

时间:2010-04-04 08:12:35

标签: zend-framework authentication session doctrine

我创建了Zend_Auth适配器实现Zend_Auth_Adapter_Interface(类似于Pádraic's adapter)并创建了简单的ACL插件。默认会话处理程序一切正常。到目前为止,非常好。

作为下一步,我创建了自定义Session SaveHandler来保存数据库中的会话数据。我的实现与this one from parables-demo非常相似。似乎一切正常。会话数据已正确保存到数据库,会话对象被序列化,但当我启用此自定义SaveHandler时,身份验证不起作用

我已经调试了身份验证,所有工作都正常,直到下一个请求,当身份验证数据丢失时。

我怀疑,这与事实有关,我使用$adapter->write($object)代替$adapter->write($string),但字符串也是如此。

我在第一个Bootstrap方法中尽早引导Zend_Application_Resource_Session

Zend_Auth是否需要任何额外的配置来保存数据库中的数据? 为什么真实性会丢失?

1 个答案:

答案 0 :(得分:0)

我找到了问题的原因。

我使用'data'作为列名。来自parables-demo的Session SaveHandler正在调用与此类似的代码:

$string = 'test'
$doctrineModel->data  =  $string;
echo gettype($doctrineModel->data); // displays 'Array', not string as some would expect

因此,我想保存的数据被意外转换为数组。