我在Doctrine上使用Symfony 1.4。
抱歉,如果这是一个愚蠢的问题,但是到底需要在sfDoctrineGuardPlugin之上构建什么才能使“记住我”功能工作?
当我登录用户时,会使用默认的15天生存期创建sfRemember cookie,并将记忆密钥保存在插件的sf_guard_remember_key表中。
在不对插件进行任何调整的情况下,Signout SignIn()方法将创建cookie,但是sfGuardSecurityUser ()方法将删除它,除非您已经登录,否则不会留下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。
这一切看起来都是完全错误的,关于这一点的文档是不存在的。
任何帮助都将不胜感激。
发布于 2010-04-29 07:51:54
为什么要在用户注销后保留记忆cookie?
它的唯一目的是让用户保持登录,即使他的当前会话已经超时-因此有了cookie。这意味着如果他关闭浏览器(并且会话cookie被删除),他将在下次访问该站点时自动使用记住cookie登录。
但是,如果他注销,我们希望完全注销他-这就是为什么清除记忆cookie是必要的。
https://stackoverflow.com/questions/2733702
复制相似问题