Symfony 2.6中的交互式登录会在重定向后释放凭据

Symfony 2.6中的交互式登录会在重定向后释放凭据,symfony,Symfony,我是Symfony的新手,所以我的问题很可能是一个简单错误的结果,但我一直在寻找答案,但没有成功 我正在尝试登录一个请求使用临时令牌输入新密码的用户 我的控制器的相关部分是: // auto log in the user $token = new UsernamePasswordToken($user, $user->getPassword(), 'main', $user->getRoles()); $this->get("security.context")-&g

我是Symfony的新手,所以我的问题很可能是一个简单错误的结果,但我一直在寻找答案,但没有成功

我正在尝试登录一个请求使用临时令牌输入新密码的用户

我的控制器的相关部分是:

// auto log in the user
  $token = new UsernamePasswordToken($user, $user->getPassword(), 'main', $user->getRoles());
  $this->get("security.context")->setToken($token);

  // do the the login event
  $event = new InteractiveLoginEvent($request, $token);
  $this->get("event_dispatcher")->dispatch("security.interactive_login", $event);

  return $this->redirect($this->generateUrl('nononsense_home_homepage'));
如果我在重定向之前使用getUser获得用户信息,我可以看到登录用户的凭据在那里,但一旦重定向发生,这些凭据就会丢失

奇怪的是,每当symfony抛出错误时,如果我故意在目标页面中包含一个错误,我可以在symfony开发栏中检查我是否使用正确的凭据登录!!!但是,如果我更正错误并重新加载页面,我可以在开发栏中看到用户不再经过身份验证

防火墙


如果您需要任何其他代码块,请告诉我…

我在中找到了正确答案


这花了一段时间,但我转到了不同的地方,我再次查看了这个问题,发现它在这篇文章中得到了回答。

你在防火墙后面的路线叫main吗?是的,我将编辑这个问题,以包括防火墙设置。对不起,你也可以发布security.yml的访问控制部分吗?路由路径必须配置一个角色访问控制为空,因为我想允许任何经过身份验证的用户进入。顺便说一下,当用户使用登录表单进行身份验证时,他们访问应用程序没有问题。请尝试添加以下访问控制规则:-{path:^/,roles:IS_AUTHENTICATED_ANONYMOUSLY}
main:
        pattern: ^/
        provider: main
        form_login:
            check_path: /users/check_user
            login_path: /users/login
            remember_me: true
            default_target_path: /users/login_init
        logout:
            path:   /users/logout
            target: /
        remember_me:
            key: Qn65f7wtgGZKCCzWQZps04AskmNSiZrvl3qVZRCCIp
            lifetime: 31536000
            path: /
            domain: ~
        anonymous: false
        switch_user: true