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

php – 在FOSUserBundle中,如何创建备用注销

发布时间:2020-12-13 17:12:56 所属栏目:PHP教程 来源:网络整理
导读:使用FOSUserBundle和Symfony2, 在我的网站中,根据登录用户的角色,我想让Logout交替重定向到两个不同的页面. 所以,我想做这样的事情: {% if is_granted("ROLE_PREMIUM") %} a href="{{ path('fos_user_security_logout_premium') }}"{{ 'layout.logout'|tran
使用FOSUserBundle和Symfony2,

在我的网站中,根据登录用户的角色,我想让Logout交替重定向到两个不同的页面.

所以,我想做这样的事情:

{% if is_granted("ROLE_PREMIUM") %}
  <a href="{{ path('fos_user_security_logout_premium') }}">{{ 'layout.logout'|trans({},'FOSUserBundle') }}</a>
{% else %}
  <a href="{{ path('fos_user_security_logout') }}">{{ 'layout.logout'|trans({},'FOSUserBundle') }}</a>
{% endif %}

然后,不知何故,做这样的事情:

<route id="fos_user_security_logout" pattern="/logout">
    <default key="_controller">FOSUserBundle:Security:logout</default>
</route>
<route id="fos_seller_security_logout" pattern="/logoutPremium">
    <default key="_controller">FOSUserBundle:Security:logoutPremium</default>
</route>

但是,由于所有注销都是在config.yml中完成的,所有这些配置都是关于登录和注销的,我不知道如何配置第二个触发器并实现它.实际上,我唯一想做的就是根据角色将用户重定向到两个不同的页面.其余的都应该保持不变.

在security.yml中放置什么东西?

logout:
          path:   /logout
          target: /main/user

非常感谢

解决方法

您可以将customLogoutHandler添加到security.yml配置中.

firewalls:
    main: # - the name of your secure area
        logout:
            path:   /logout
            target: /
            success_handler: your_bundle.custom_logout_handler

例如,your_bundle.custom_logout_handler将负责注销您的用户并根据类似的_target_url参数重定向他.

Symfony/Component/Security/Http/Logout

(编辑:李大同)

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

    推荐文章
      热点阅读