gpt4 book ai didi

php - 检查用户是否在 symfony 中被重定向?

转载 作者:可可西里 更新时间:2023-11-01 00:09:25 24 4
gpt4 key购买 nike

我的 symfony 项目中有一条路线受到限制,所以如果我尝试在未登录的情况下前往那里,我将被重定向到登录页面。

我想区分什么时候我试图在没有登录的情况下进入限制区域,什么时候我直接进入登录页面。

关于如何在 symfony 中执行此操作的任何线索?

更新通过区分,我的意思是通过某种方式来检查用户是否通过直接转到该 url 登陆了登录页面,或者用户是否因为试图访问受限页面而登陆了登录页面。

最佳答案

Thomas 的解决方案很好。这是一个替代方案。

知道这一点并且只有在未登录的情况下您才会被重定向,您可以使用附加参数让您的安全防火墙重定向。

安全.yml

...
secured_area:
pattern: ^/
form_login:
check_path: /login_check
login_path: /login/restricted
...

路由.yml

login:
pattern: /login
defaults: { _controller: YourBundle:Default:login }

login:
pattern: /login/{restricted}
defaults: { _controller: YourBundle:Default:login }

Controller

public function loginAction($restricted = null)
{
...
Do something with $restricted
...

现在如果有人进入登录页面:

yoursite.com/login

一切都会正常并且 $restricted = null 所以你知道他们直接来了。

如果有人去:

yoursite.com/admin

当他们未登录时,他们将被重定向到:

yoursite.com/login/restricted

在您的 Controller 中 $restricted 将被设置,您将知道他们试图在未经身份验证的情况下访问受限区域。

当然,您可以将 restricted 更改为对您有意义的内容。

关于php - 检查用户是否在 symfony 中被重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com