认证后在 symfony 4 中添加角色

问题描述 投票:0回答:1

用户登录后,是否可以在 symfony 4 中为用户添加一些角色?例如,如果您转到某个页面,我想为用户添加从数据库中获取的一些角色,而无需任何重新身份验证过程。

php symfony roles
1个回答
0
投票

您可以更换令牌。

$roles = array_merge($user->getRoles(), ['ROLE_EXTRA']);

$token = new UsernamePasswordToken($user, null, 'main', roles);

$this->tokenStorage->setToken($token);

这个用例非常不规则,所以你可能需要仔细考虑一下。

另外,看看 security.yml

security:
    always_authenticate_before_granting: true

这可能会通过重新验证来覆盖您的角色。 (我不确定。)如果需要,将其设置为 false。

© www.soinside.com 2019 - 2024. All rights reserved.