你好stackoverflow的朋友,
我有一个实例,在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所示:
原文链接:https://www.f2er.com/php/139760.htmlaccess_control: - { path: ^/login,roles: IS_AUTHENTICATED_ANONYMOUSLY }
如果您不希望经过身份验证的用户访问登录页面,则需要手动将其从登录页面重定向.要做到这一点,去你的Controller进行登录操作,并在startAction()函数的开头添加这个:
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... }