如何在Symfony2重定向到登录页面之前获取先前的URL

3

我配置了如下身份验证:

pattern: ^/secured/*
form_login:
  check_path: _login_check
  login_path: _login #/login

也就是说,当我输入http://www.example.com/secured/user时,它会重定向到http://www.example.com/login,并没有任何关于/secured/user URI的信息。
我需要知道这个URI以便之后使用。那么,我该如何获取这个URI?

为什么你需要它以备后用?也许你会有不同的看法... 如果你需要,你可以使用"use_referer: true"将其重定向回引用者。 - stefancarlton
与stefancarlton一起+1,只想补充说明Symfony身份验证的默认行为是,在向/login提供正确凭据后,您将自动重定向回/secured/user。 - Florent
@Florent 我想在注册时添加/ secured / user或任何最后的重定向URL,以便在用户注册后重定向回来。现在它只适用于登录,但注册会带到主页。你知道我们如何获取安全的最后路径吗?这是登录使用的。 - Basit
我正在考虑实现相同的功能,但现在我遇到了同样的问题。一个用户复制了他同事给他的应用程序URL链接,并将其粘贴到浏览器中。结果登录后,他只能看到默认主页,这让他感到非常失望。有没有办法获取先前的URL呢?因为这个方法不起作用:$this->getRequest()->headers->get('referer')? - Reusable
有人知道这个问题的答案吗? - MaThar Beevi
1个回答

5

用户成功登录后,您可以使用重定向将其发送到引用者URL。

$this->getRequest()->headers->get('referer')

谢谢。但是我需要在登录之前获取那个URL。 - Tu Tran
这个有多可靠?如果浏览器端没有设置HTTP_REFERER怎么办? - some_groceries
@mojo 你将被重定向到配置的默认重定向页面。 - Sofien Benrhouma
@SofienBenrhouma 谢谢您的回复,这个有没有其他的替代方案?这里有一个非常类似我需要的问题(http://stackoverflow.com/questions/32649157/reliably-redirect-to-last-accessed-page-in-symfony2),但是没有得到答复。 - some_groceries
我也尝试了 $this->getRequest()->headers->get('referer') 但是没有返回任何值。 - MaThar Beevi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接