Zend_Auth使用Zend_Session而不是默认存储?

时间:2010-12-21 01:37:22

标签: php zend-framework cookies zend-auth zend-session

我正在阅读this tutorial,并且在代码中的某一点,从数据库中检索用户信息并为用户创建会话:

// the default storage is a session with namespace Zend_Auth  
$authStorage = $auth->getStorage();  
$authStorage->write($userInfo);

我试过这个,但是一旦浏览器关闭,这个会话就会过期。所以我的问题是如何将它与Zend_Session结合起来创建一个持续20天的cookie?我无法通过Zend_Session文档弄清楚..

任何帮助表示赞赏! 感谢

1 个答案:

答案 0 :(得分:2)

不要混合2个不同的任务。您拥有的一项任务是“身份验证”,另一项任务是“记住我的功能”。

所以不要试图一次性解决它们。

为了记住我,使用随机哈希存储另一个 Cookie,并保留一个表格,将每个随机哈希值与特定user_id相对应。

此外,在SO上有很多关于“记住我”实现的讨论:http://www.google.ru/search?q=site%3Astackoverflow.com+remember+me&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox