【发布时间】:2013-04-01 23:48:15
【问题描述】:
我的用户可以在表单上更改他们的密码。如果此表单有效,我对其进行编码,使用使会话无效
$this->get('security.context')->setToken(null);
$this->getSession()->invalidate();
...将用户刷新到数据库并进行重定向(到相同的 url)。
除此之外,我还有一种机制可以在转发之前在会话中存储一些信息,并在“转发”模板中显示这些数据。
两者都可以单独使用,但不能一起使用:-)
我可以看到,该值已写入(在使会话无效之后)并且我相信 symfony 实例化了一个新会话。
我只是不知道,在那之后会发生什么。也许 symfony 正在做一些“魔术”,因为它在显示重定向的 url 之前“注入”了登录页面。
【问题讨论】:
-
也许您需要登录才能查看重定向的 URL?我想你需要,因为它是一个编辑用户信息的页面。
-
是的,我当然必须这样做。我总是重定向到此对话框中的同一页面。更改密码后的唯一区别是,我使会话无效,因此登录页面在工作流程中被“注入”。在这种情况下,我的信息没有显示,文本被写入会话,但会话似乎发生了变化(第二次)。
标签: session symfony login store invalidation