【发布时间】:2013-08-09 14:08:51
【问题描述】:
我有流动的问题。我有一个用 symfony 2 制作的网站,现在在我通过身份验证表单后,我有一个配置文件信息窗口,当我可以更改用户数据时,例如。用户名。
问题是,在我更改用户名后,网站让我再次登录。我怎样才能避免再次登录的需要。
【问题讨论】:
我有流动的问题。我有一个用 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);
【讨论】: