Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何强制用户注销symfony2_Php_Wordpress_Security_Symfony_Logout - Fatal编程技术网

Php 如何强制用户注销symfony2

Php 如何强制用户注销symfony2,php,wordpress,security,symfony,logout,Php,Wordpress,Security,Symfony,Logout,我想强制用户在检查symfony2是否有足够的能力进入特定的安全区域后注销 我试过: $this->get('request')->getSession()->invalidate(); 但似乎出现了问题,用户仍然登录,直到我使用/logout路径将其注销 我必须提到的是,我正在使用KayueWordpressBundle将我的symfony应用程序与基于wordpress的网站连接起来,以创建自定义的后台办公室 这是我的security.yml文件 security: fi

我想强制用户在检查symfony2是否有足够的能力进入特定的安全区域后注销

我试过:

$this->get('request')->getSession()->invalidate();
但似乎出现了问题,用户仍然登录,直到我使用/logout路径将其注销

我必须提到的是,我正在使用KayueWordpressBundle将我的symfony应用程序与基于wordpress的网站连接起来,以创建自定义的后台办公室

这是我的security.yml文件

security:
firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false
    login_firewall:
        pattern:    ^/$
        anonymous:  ~
    secured_area:
        pattern:    ^/
        kayue_wordpress: ~
        form_login:
            check_path: /login_check
            login_path: /
        logout:
            path:   /logout
            target: /
access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }

providers:
    wordpress:
        entity: { class: Kayue\WordpressBundle\Entity\User, property: username }

encoders:
    Kayue\WordpressBundle\Entity\User:
        id: kayue_wordpress.security.encoder.phpass
请问我怎么做


谢谢

您可以通过使用
null
调用
setToken()
强制注销,请尝试以下操作:

$this->container->get('security.context')->setToken(null);
它将从安全上下文中销毁用户令牌并将用户踢出



另外,请查看此问题以了解更多详细信息:

上述给定解决方案的可能副本将不会调用注销处理程序,如果我已注册了任何注销处理程序。顺便说一句,请使用
$this->container->get('security.authorization\u checker')
(2.6中新增)@Ronan,它是
$this->container->get('security.token\u storage')
。看见