加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 14:04:33 所属栏目:PHP教程 来源:网络整理
导读:你好stackoverflow的朋友, 我有一个实例,在symfony2中,我创建了一个安全软件包(不使用FOS USER BUNDLE),当我登录时,我尝试访问登录页面,显示登录表单.它没有重定向到默认页面,即使我实际上登录了.登录后如何防止此登录表单. 下面是我的security.yml 更新 fir
你好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所示:
access_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...
}

这将重新认证的用户转到您的主页.当然,将’_homepage’替换为要将用户重定向到的页面的路由名称.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读