当我尝试使用is_granted()
检查Twig中的用户角色时,如果不返回布尔值,则只需重定向到登录路径即可。
{% if is_granted('ROLE_SUPER_ADMIN') == true %} # without == true tested.
<a href="{{ path('foo_bar') }}">Foo Bar Link</a>
{% endif %}
Symfony:4.1
答案 0 :(得分:0)
更换身份验证器后问题解决了
更改前:
$isPasswordValid = $this->encoder->isPasswordValid($user, $token->getCredentials());
if ($isPasswordValid) {
return new UsernamePasswordToken($user, $user->getPassword(), $providerKey, $user->getRoles());
}
,然后将其更改为:
$isPasswordValid = $this->encoder->isPasswordValid($user, $token->getCredentials());
if ($isPasswordValid or $token->getUser() instanceof User) {
return new UsernamePasswordToken($user, $user->getPassword(), $providerKey, $user->getRoles());
}
我将$token->getUser() instanceof User
附加到条件中。