Symfony2:创建注销链接

Posted

技术标签:

【中文标题】Symfony2:创建注销链接【英文标题】:Symfony2: Create a logout link 【发布时间】:2012-09-17 21:37:50 【问题描述】:

我正在管理我的 symfony2 项目中的用户。我能够毫无问题地登录和注销。现在,我想创建一个注销链接(而不是输入 app_dev.php/logout)。

我试过了

<a href="/logout">Logout</a>

但是这个链接正在删除 app_dev.php,我只有 /logout 不存在。

这是我的 security.yml

security:
  encoders:
    MDPI\BackendBundle\Entity\Users:
      id: mdpi.backend.backendencoder.class

  providers:
    secured_area:
     entity:  class: MDPI\BackendBundle\Entity\Users, property: email 

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


  access_control:
    -  path: ^/(?!login)(.*), role: ROLE_admins 
    -  path: /login.*, role: IS_AUTHENTICATED_ANONYMOUSLY 

非常感谢。

【问题讨论】:

【参考方案1】:

从 Symfony 2.7 开始,您可以使用 Twig logout_pathlogout_url 函数。

【讨论】:

【参考方案2】:

当您使用 FOSUserBundle 时,您可以使用

 path('fos_user_security_logout') 

【讨论】:

【参考方案3】:

我以这种方式创建了链接:(我使用 TWIG)

<a href=" path('user_logout') ">Logout</a>

并且在我的“UserBundle”中,在 routing.yml 文件中添加了

user_logout:
       pattern:   /logout

【讨论】:

谢谢@Bernat,这正是我所需要的。 :D 请接受答案:) 我还要再等 2 分钟。会做的。谢谢 只是一个细节,在 Symfony3 中,路由的配置需要稍有不同。 user_logout: path: /logout

以上是关于Symfony2:创建注销链接的主要内容,如果未能解决你的问题,请参考以下文章

如何强制用户注销 symfony2

Symfony2 注销 CSRF 保护:csrf_provider 无法识别

启用“记住我”时,在 Symfony 2 应用程序中注销用户

php 未解释为 symfony2 项目 (Akeneo)

带有自定义菜单的 Symfony2 与奏鸣曲集成

如何在 symfony2 中删除 Session 和 cookie