检查用户是否在控制器

时间:2017-12-05 12:51:09

标签: symfony security authentication

有许多代码段如何检查经过身份验证的用户是否有权请求资源。但我找不到一个示例来检查用户是否完全通过身份验证。

我有一个内核请求监听器,其中我试图使用以下代码检查用户是否经过身份验证:

if (TRUE === $this->get('security.authorization_checker')->isGranted('ROLE_USER')) 
{
    //doing stuff
}

我收到以下错误消息:

AuthenticationCredentialsNotFoundException in classes.php line 5307:
The token storage contains no authentication token. One possible reason may be that there is no firewall configured for this URL.

我想,这是因为用户根本没有登录,因此没有任何身份验证令牌。

所以我的问题是:在我检查用户是否获得授权之前,如何在symfony控制器中检查用户是否已通过身份验证?

2 个答案:

答案 0 :(得分:0)

您可以这样检查:

$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');

答案 1 :(得分:0)

参考official documentation,您可以使用IS_AUTHENTICATED_FULLYIS_AUTHENTICATED_REMEMBERED

if (!$this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {
    throw $this->createAccessDeniedException();
}

// do stuff