Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 2——匿名页面有空;“安全.背景”;代币_Php_Symfony - Fatal编程技术网

Php Symfony 2——匿名页面有空;“安全.背景”;代币

Php Symfony 2——匿名页面有空;“安全.背景”;代币,php,symfony,Php,Symfony,在控制器中执行此操作时: $token = $this->get('security.context')->getToken(); 如果控制器位于不受保护的URL下,则令牌为空: access_control: - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/, roles: ROLE_ADMIN } - { path: ^/public, roles: IS_AUTH

在控制器中执行此操作时:

$token = $this->get('security.context')->getToken();
如果控制器位于不受保护的URL下,则令牌为空:

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_ADMIN }
    - { path: ^/public, roles: IS_AUTHENTICATED_ANONYMOUSLY }
在我的例子中,控制器操作是在
/public
上调用的。但是,如果代码在
/
受保护的页面下运行,则令牌存在

我之所以希望这样做,是因为我希望在用户登录时包含其他信息,并且我希望检查是否存在此“令牌”


是否有更好的方法来检查用户是否已登录(在受保护和未受保护的区域都有效?

您可以通过检查用户是否已完全通过身份验证来检查用户是否已通过身份验证,也就是说,使用
isgrated
功能,他们是非匿名的

use Symfony\Component\Security\Core\Exception\AccessDeniedException

public function editAction()
{
    if (false === $this->get('security.context')->isGranted(
        'IS_AUTHENTICATED_FULLY'
       )) {
        throw new AccessDeniedException();
    }
    // ...
}
有关更多信息,请参阅