gpt4 book ai didi

php - Symfony2-登录表单在登录后再次出现

转载 作者:IT王子 更新时间:2023-10-29 00:11:58 26 4
gpt4 key购买 nike

嗨 stackoverflow 的 friend 们,

我有一个实例,在 symfony2 中我创建了一个安全包(未使用 FOS USER BUNDLE),当我登录时,我尝试再次访问登录页面,显示登录表单。是否没有重定向到默认页面,即使我实际上已登录。如何在登录后阻止此登录表单。

下面是我的security.yml

更新

firewalls:
main:
pattern: ^/
anonymous: ~
form_login:
login_path: /login
check_path: /login_check
logout:
path: /logout
target: /login

access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/centerreg, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/customredirect, roles: ROLE_USER }
- { path: ^/admin/, roles: ROLE_ADMIN }
- { path: ^/center/, roles: ROLE_CENTER }
- { path: ^/client/, roles: ROLE_CLIENTADMIN }
- { path: ^/examcenter/, roles: ROLE_EXAMCENTER }
- { path: ^/tutor/, roles: ROLE_TUTOR }
- { path: ^/evaluator/, roles: ROLE_EVALUATOR }
- { path: ^/student/, roles: ROLE_STUDENT }
- { path: ^/user/, roles: ROLE_USER }

任何帮助都将不胜感激。

最佳答案

Symfony 不会自动执行此操作,因为登录页面始终可访问,如 security.yml 中所示:

access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }

如果您不希望经过身份验证的用户进入登录页面,您需要手动将他们重定向到登录页面之外。为此,转到您的 Controller 进行登录操作,并在 loginAction() 函数的开头添加:

public function loginAction()
{
if ($this->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY'))
{
// redirect authenticated users to homepage
return $this->redirect($this->generateUrl('_homepage'));
}

//other code goes here...
}

这会将经过身份验证的用户重定向到您的主页。当然,将“_homepage”替换为您希望将用户重定向到的页面的路由名称。

关于php - Symfony2-登录表单在登录后再次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9824126/

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