Symfony2更新会话和商店价值

时间:2013-04-10 08:30:34

标签: session symfony login store invalidation

我的用户可以在表单上更改其密码。如果这个表格有效我编码它,使用

使会话无效
$this->get('security.context')->setToken(null);
$this->getSession()->invalidate();

...将用户刷新到数据库并进行重定向(到同一个URL)。

除此之外,我还有一种机制,可以在转发之前在会话中存储一些信息,并在“转发”模板中显示这些数据。

两者都能很好地发挥作用,但不能合作: - )

我可以看到,该值被写入(在使会话无效之后)并且我相信,symfony实例化了一个新会话。

我只是不知道,之后会发生什么。也许symfony正在做“一些魔术”,因为它在显示重定向的url之前“注入”登录页面。

1 个答案:

答案 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,第四个参数是角色数组。