繁体   English   中英

登录后重定向到上一个操作

[英]Redirect to previous action after login

我有一个仅授权用户可以访问的操作addFavorite女巫。 当用户匿名时,他将被重定向到登录表单。 因此,我希望在连接后将用户重定向到此操作。 现在,他被重定向到默认路径

security.yml

        main:
        pattern:   ^/
        anonymous: true
        provider:  main
        form_login:
            login_path: fos_user_security_login
            check_path: fos_user_security_check
            always_use_default_target_path: false
            default_target_path: /
            target_path_parameter:          _target_path
            use_referer:         true
            csrf_provider: form.csrf_provider
        logout:
            path:   fos_user_security_logout
            target: /
        remember_me:
            key:    %secret%                                    

ActionController的:

    public function addFavoriteAction(Travel $travel, Request $request)
    {

    if (!$this->get('security.context')->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
        return $this->redirect($this->generateUrl('fos_user_security_login'));
    }

    if ($request->getMethod() == 'GET') {

    $em = $this->getDoctrine()->getManager();

    $user = $this->get('security.context')->getToken()->getUser();

    $nbFav = $em->getRepository('ProjectTravelBundle:Favorite')->findOneBy(array('user' =>$user, 'travel' =>$travel));

    if(!$nbFav)
    { 
        $favorite = new Favorite();     
        $favorite->setUser($user);
        $favorite->setTravel($travel);

        $em->persist($favorite);
        $em->flush();
    }
    }
    $referer = $this->getRequest()->headers->get('referer');
    return $this->redirect($referer);
}

根据Symfony的文档 ,用户将自动重定向到他们尝试访问的页面。 因此,如果未经身份验证就已经在addFavorite路由上,则将其登录并发送回去。

您也可以通过以下形式手动设置:

<input type="hidden" name="_target_path" value="your_route_name_goes_here" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM