我使用的是Symfony 1.2.7和sfGuardUser插件。我可以查看所有页面,登录和注销。但是,当我尝试编辑(只是去表单)或更新对象(保存更改)有时我有auth问题,并且symfony再次将我重定向到编辑表单页面。我对有些强调,有时,因为这是它让我疯狂:)sfGuardUser中的认证问题(安全过滤器)Symfony
用户有cookies和remember_cookie。由于我们使用子域名,因此我将cookie域名“.domain.com”用于这两个Cookie。
在filters.yml我有以下:
security: ~
remember:
class: sfGuardBasicSecurityFilter
该过滤器是由所使用的许多之一:
class sfGuardBasicSecurityFilter extends sfFilter
{
public function execute ($filterChain)
{
if ($this->isFirstCall() && !$this->getContext()->getUser()->isAuthenticated())
{
if ($cookie = $this->getContext()->getRequest()->getCookie(sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'sfRemember')))
{
$q = Doctrine_Query::create()
->from('sfGuardRememberKey r')
->innerJoin('r.sfGuardUser u')
->where('r.remember_key = ?', $cookie);
if ($q->count())
{
$this->getContext()->getUser()->signIn($q->fetchOne()->sfGuardUser);
}
}
}
$filterChain->execute();
}
}
在模块/配置/ security.yml
edit:
is_secure: on
update:
is_secure: on
看看http标题,它会让我回到HTTP 302的答案。如果我看看引发重定向的代码;我注意到,好像只是编辑或更新操作不承认用户之前:
Jul 08 19:03:15 symfony [info] {sfFilterChain} Executing filter "sfBasicSecurityFilter"
Jul 08 19:03:15 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter"
Jul 08 19:03:15 symfony [info] {sfFilterChain} Executing filter "sfGuardBasicSecurityFilter"
Jul 08 19:03:15 symfony [info] {sfDoctrineLogger} executeQuery : SELECT COUNT(*) AS num_results FROM (SELECT s.id, s.ip_address FROM sf_guard_remember_key s ...
Jul 08 19:03:16 symfony [info] {sfDoctrineLogger} executeQuery : SELECT s.id AS s__id, s.user_id AS s__user_id, s.remember_key AS s__remember_key, s.ip_address ...
Jul 08 19:03:16 symfony [info] {myUser} User is authenticated
Jul 08 19:03:16 symfony [info] {sfDoctrineLogger} executeQuery : SELECT s.id AS s__id, s.name AS s__name, s.description AS s__description, s.created_at AS ....
Jul 08 19:03:16 symfony [info] {sfDoctrineLogger} executeQuery : SELECT s.id AS s__id, s.name AS s__name, s.description AS s__description, s.created_at AS ....
Jul 08 19:03:16 symfony [info] {myUser} Add credential(s) ""
Jul 08 19:03:16 symfony [info] {sfDoctrineLogger} executeQuery : UPDATE sf_guard_user SET last_login = ?, updated_at = ? WHERE id = ? - (...
Jul 08 19:03:16 symfony [info] {sfFilterChain} Executing filter "subdomainFilter"
在哪里可以继续寻找或如何解决它的主意?
非常感谢!
嘿fesja,你如何改变sfguard cookie的域名?请参阅此线程上的问题:http://stackoverflow.com/questions/19452914/symfony-sfguarduser-single-authentication-on-several-subdomains – flm 2013-10-18 15:06:13