【问题标题】:How to correctly logout with FOSUserBundle in Symfony2如何在 Symfony2 中使用 FOSUserBundle 正确注销
【发布时间】:2016-07-22 16:10:51
【问题描述】:

谁能告诉我我必须执行哪些步骤才能从后台注销 我正在使用 symfony2 和 fosuser 包 这是我的security.yml

security:
encoders:
    FOS\UserBundle\Model\UserInterface: bcrypt

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
    fos_userbundle:
        id: fos_user.user_provider.username

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_token_generator: security.csrf.token_manager
            default_target_path: /admin
            # if you are using Symfony < 2.8, use the following config instead:
            # csrf_provider: form.csrf_provider

        logout:       true
        anonymous:    true

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }

我已经尝试添加

logout:
        path:   /logout
        target: /login

logout:
            path:   /logout
            target: /
        anonymous:    true

但不工作 该怎么办 ?

【问题讨论】:

  • “不工作” - 你是什么意思?
  • @ArturVesker 我有 - 找不到“Get /”的路线 - 错误

标签: symfony fosuserbundle logout


【解决方案1】:

注销功能内置在 FOSUserBundle 中。

你可以检查这个购买运行

php app/console route:debug | grep logout

它应该显示

Name                              Method   Scheme Host Path 
fos_user_security_logout          GET      ANY    ANY  /logout 

如果您希望覆盖 FOSUserBundle 的路由,这个答案非常有帮助:https://stackoverflow.com/a/19608870/5760411

或文档:http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_controllers.html

【讨论】:

    【解决方案2】:

    您忘记添加路由定义。

    在routing.yml中:

    logout:
        path: /logout
    

    【讨论】:

      猜你喜欢
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 2019-01-19
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多