有许多代码段如何检查经过身份验证的用户是否有权请求资源。但我找不到一个示例来检查用户是否完全通过身份验证。
我有一个内核请求监听器,其中我试图使用以下代码检查用户是否经过身份验证:
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控制器中检查用户是否已通过身份验证?
答案 0 :(得分:0)
您可以这样检查:
$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
答案 1 :(得分:0)
参考official documentation,您可以使用IS_AUTHENTICATED_FULLY
或IS_AUTHENTICATED_REMEMBERED
:
if (!$this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {
throw $this->createAccessDeniedException();
}
// do stuff