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

发布时间:2020-06-30 发布网站:脚本之家
价值2580元廖雪峰前端视频终终终于免费啦!
脚本之家收集整理的这篇文章主要介绍了php – Symfony2-登录表单在登录后再次出现脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你好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’替换为要将用户重定向到的页面的路由名称.

总结

以上是脚本之家为你收集整理的php – Symfony2-登录表单在登录后再次出现全部内容,希望文章能够帮你解决php – Symfony2-登录表单在登录后再次出现所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478