使用sfGuardPlugin时,如果某个页面是设定为is_secure:off那么会出现remember me功能失效。具体表现为,未加密页面无法读取cookie。
在apps/frontend/lib/myUser.class文件中加入下边的代码:
/** * Returns true if user is authenticated. * @return boolean */
public function isAuthenticated()
{
if (!$this->authenticated)
{if ($cookie = sfContext::getInstance()->getRequest()->getCookie(sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'sfRemember')))
{$c = new Criteria();
$c->add(sfGuardRememberKeyPeer::REMEMBER_KEY, $cookie);
$rk = sfGuardRememberKeyPeer::doSelectOne($c);
if ($rk && $rk->getSfGuardUser())
{$this->signIn($rk->getSfGuardUser());}
}
}
return $this->authenticated;
}
原文:http://trac.symfony-project.org/ticket/3868
No comments:
Post a Comment