2

我有流动的问题。我有一个用 symfony 2 制作的网站,现在通过身份验证表单后,我有一个配置文件信息窗口,可以更改用户数据,例如。用户名。

问题是,在我更改用户名后,网站让我再次登录。我怎样才能避免再次登录的需要。

4

1 回答 1

3

用户名由 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);
于 2013-08-09T14:41:36.087 回答