在Symfony2中,是否可以检查用户是否经过身份验证以访问他请求的URl.我想要做的是,我不想让登录用户返回注册或登录或恢复密码页面.
这是我的security.yml:
access_control:
- { path: ^/signup/, roles: IS_AUTHENTICATED_ANONYMOUSLY && !IS_AUTHENTICATED_FULLY}
- { path: ^/register/, roles: IS_AUTHENTICATED_ANONYMOUSLY && !IS_AUTHENTICATED_FULLY}
- { path: ^/recover/, roles: IS_AUTHENTICATED_ANONYMOUSLY && !IS_AUTHENTICATED_FULLY}
Run Code Online (Sandbox Code Playgroud)
但这显示,访问被拒绝的页面给当前用户.所以我认为如果我可以通过检查他是否被允许将用户重定向到主页是很好的.我可以通过提供用户在监听器中进行身份验证的路径来检查吗?
public function onKernelResponse(FilterResponseEvent $event)
{
$request = $event->getRequest();
$path = $request->getPathInfo();
if($this->container->get('security.context')->getToken() != null) {
// To check if user is authenticated or anonymous
if( ($this->container->get('security.context')->getToken() instanceof UsernamePasswordToken) &&
($this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') == true) ) {
// HOW TO CHECK PATH ?
// set response to redirect to home page
}
}
}
Run Code Online (Sandbox Code Playgroud)