Symfony2 - 检测用户是否在安全防火墙内

use*_*356 11 php symfony

我试图找出用户是否在安全防火墙内.

security.yml:

firewalls:
    non_secure_area:
        pattern: ^/
        anonymous: true
    secure_area:
        pattern: ^/admin
        form_login:
            #etc.
        logout:
            #etc.
Run Code Online (Sandbox Code Playgroud)

所以我需要知道用户是否在网站的'secure_area'安全部分内.

我已经使用了这个,但当然它只告诉我是否有人在HTTPS页面上"登录".肯定有更好的办法:

if( $request->isSecure() && $securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED') ) {

} 
Run Code Online (Sandbox Code Playgroud)

Ale*_* B. 10

您可以在其上获取安全令牌和访问提供程序密钥.

$token = $securityContext->getToken();
$providerKey = $token->getProviderKey(); // secured_area
Run Code Online (Sandbox Code Playgroud)

别忘了检查该令牌是否存在而且它不是一个实例 AnonymousToken