当我在控制器中执行此操作时:
$token = $this->get('security.context')->getToken();
如果控制器位于不受保护的 URL 下,则令牌为 null:
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
- { path: ^/public, roles: IS_AUTHENTICATED_ANONYMOUSLY }
在我的例子中,控制器动作是在/public
. 如果代码在/
受保护的页面下运行,则令牌存在。
我想要这个的原因是因为我想在用户登录的情况下包含其他信息,并且我想检查这个“令牌”是否存在。
有没有更好的方法来检查用户是否已经登录——在受保护和不受保护的区域都可以使用?