Redirect if the user is logged in

后端 未结 2 1992
既然无缘
既然无缘 2020-12-23 15:25

I am building a web application with Symfony 2, using the FOSUserBundle bundle.
Users create an account, login and start using the application.

What I want to

2条回答
  •  别那么骄傲
    2020-12-23 15:57

    I found the solution myself:

    router = $router;
            $this->container = $container;
        }    
    
        public function onKernelRequest(GetResponseEvent $event)
        {
            $container = $this->container;
            $accountRouteName = "DanyukiWebappBundle_account";
            if( $container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') ){
                // authenticated (NON anonymous)
                $routeName = $container->get('request')->get('_route');
                if ($routeName != $accountRouteName) {
                    $url = $this->router->generate($accountRouteName);
                    $event->setResponse(new RedirectResponse($url));
                }
            }
        }
    }
    

    And then, in the services.yml file of my bundle:

    services:
        kernel.listener.logged_in_user_listener:
                class: Danyuki\UserBundle\Listener\LoggedInUserListener
                tags:
                    - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
                arguments: [ @router, @service_container ]  
    

提交回复
热议问题