我的用户可以在表单上更改其密码。如果这个表格有效我编码它,使用
使会话无效$this->get('security.context')->setToken(null);
$this->getSession()->invalidate();
...将用户刷新到数据库并进行重定向(到同一个URL)。
除此之外,我还有一种机制,可以在转发之前在会话中存储一些信息,并在“转发”模板中显示这些数据。
两者都能很好地发挥作用,但不能合作: - )
我可以看到,该值被写入(在使会话无效之后)并且我相信,symfony实例化了一个新会话。
我只是不知道,之后会发生什么。也许symfony正在做“一些魔术”,因为它在显示重定向的url之前“注入”登录页面。
答案 0 :(得分:0)
我真的不明白你要做什么,以及为什么你的会话无效,但你的用户需要登录才能看到重定向的URL。 你的代码将他记录下来。
您可以通过以下方式登录用户:
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
$authToken = new UsernamePasswordToken($user, null, 'secured_area', array('ROLE_USER'));
$this->get('security.context')->setToken($authToken);
第三个参数是providerKey,第四个参数是角色数组。