[英]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.