我正在使用带有 Doctrine 的 Symfony 1.4。
抱歉,如果这是一个愚蠢的问题,但究竟需要在 sfDoctrineGuardPlugin 之上构建什么才能让“记住我”功能正常工作?
当我登录一个用户时,sfRemember cookie 的默认寿命为 15 天,并且记忆密钥保存在插件的 sf_guard_remember_key 表中。
无需对插件进行任何调整,sfGuardSecurityUser SignIn() 方法就会创建 cookie,但 Signout() 方法会删除它,除非您已登录,否则不会留下任何 cookie!
Signin():
sfContext::getInstance()->getResponse()->setCookie($remember_cookie, $key, time() + $expiration_age);
Signout():
sfContext::getInstance()->getResponse()->setCookie($remember_cookie, '', time() - $expiration_age);
我可以看到数据库表将 cookie 保存为 sf_guard_user 的关系,但如果 cookie 消失了,那就不好了......
如果有人能告诉我我在这里缺少什么,我将不胜感激,理想情况下,如果我阻止 Signout() 方法删除 cookie,我是否需要自己编写代码来读取 cookie 或者这是在某处自动化/不知何故?我有标准的 Symfony 1.4 和 sfDoctrineGuardPlugin 安装。
这一切似乎完全错误,并且不存在关于此的文档。
任何帮助将不胜感激。