【问题标题】:Adding roles in symfony 4 after authetification身份验证后在 symfony 4 中添加角色
【发布时间】:2019-03-10 21:18:10
【问题描述】:

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

【问题讨论】:

  • 这些特定页面上的这些“角色”的目的是什么?您是否希望将这些附加角色保留在您的数据库中,并让它们重新应用于进一步的请求……或者您是否希望实现更细粒度的访问控制,例如仅将资源访问权限授予一小部分用户?

标签: symfony roles


【解决方案1】:

您可以替换令牌。

$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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 2023-03-20
    • 2021-09-05
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多