Symfony 4:无法以ROLE_ADMIN身份访问

时间:2019-06-10 11:51:16

标签: symfony

“我的角色”列值:["ROLE_ADMIN"]

我的实体/用户:

/**
 * @ORM\Column(type="json", nullable=true)
 */
private $roles = [];

public function getRoles() : ?array { 
    $roles = $this->roles; 
    $roles[] = 'ROLE_USER';
    return array_unique($roles); 
}

$currentUser->getRoles();var_dump中给了我:

array(2) { [0]=> string(10) "ROLE_ADMIN" [1]=> string(9) "ROLE_USER" }

我的security.yaml:

access_control:
- { path: ^/admin, roles: ROLE_ADMIN }

探查器工具栏告诉我我已经登录。

但是我仍然看到消息:

Symfony\Component\HttpKernel\Exception\
AccessDeniedHttpException

但是当我将security.yaml更改为:

access_control:
- { path: ^/admin, roles: ROLE_USER }

然后异常消失。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

尝试注销和登录,symfony将角色保留在“记住我”令牌中,您可以在事件探查器的“安全性”选项卡中检查当前分配的角色。很有可能角色不是在“记住我的Cookie”中,这就是为什么它不允许您访问的原因。