认证后在symfony 4中添加角色

时间:2018-10-05 11:14:05

标签: symfony roles

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

1 个答案:

答案 0 :(得分: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。