我有问题。 我有一个用symfony 2建立的网站,现在通过身份验证表单后,有了一个配置文件信息窗口,可以更改用户数据,例如。 用户名。
问题是,更改用户名后,该网站使我再次登录。 如何避免需要再次登录。
最后发布: 2013-08-09 14:08:51
我有问题。 我有一个用symfony 2建立的网站,现在通过身份验证表单后,有了一个配置文件信息窗口,可以更改用户数据,例如。 用户名。
问题是,更改用户名后,该网站使我再次登录。 如何避免需要再次登录。
用户名通过symfony存储在会话中,以在认证后在每个页面视图上加载用户数据(用户实体)。 您被要求重新登录,因为用于身份验证的用户名不再能够加载用户数据。 您可以尝试更新存储在会话中的用户名(令牌):
$oldToken = $this->container->get('security.context')->getToken();
// create the authentication token
$token = new UsernamePasswordToken(
$user, //user object with updated username
null,
$oldToken->getProviderKey(),
$oldToken->getRoles());
// update the token in the security context
$this->container->get('security.context')->setToken($token);