【问题标题】:symfony authentication issue after username change更改用户名后的 symfony 身份验证问题
【发布时间】:2013-08-09 14:08:51
【问题描述】:

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

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

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    用户名由 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);
    

    【讨论】:

    • 谢谢大卫,我解决了,问题是您需要重新验证用户身份,根据更改后的凭据创建新令牌,所以您的回答是正确的,再次感谢
    • 从 Symfony 2.6 开始,该服务被命名为 security.token_storage
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 2017-02-08
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多