Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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_Security_Symfony_Fosuserbundle - Fatal编程技术网

Php symfony2断开/注销一个用户(不是当前用户)

Php symfony2断开/注销一个用户(不是当前用户),php,security,symfony,fosuserbundle,Php,Security,Symfony,Fosuserbundle,在我的应用程序中,我确实需要通过编程断开用户的连接。 不是当前用户,而是另一个知道其id的用户。我正在使用FOSUserBundle,但我想这可能对任何提供商都有好处 令牌和会话是相对于当前用户的,并且存储在其计算机上 那么,我该怎么做呢 此处有与som相关的帖子,但响应与请求不匹配:只有在未使用本机php会话处理程序时才有可能(这是symfony中的默认设置)。在这种情况下,您不知道其他用户的会话ID 您可以使用数据库作为会话存储—在symfony.com上有一个。一旦将会话存储在数据库中,销

在我的应用程序中,我确实需要通过编程断开用户的连接。 不是当前用户,而是另一个知道其id的用户。我正在使用FOSUserBundle,但我想这可能对任何提供商都有好处

令牌和会话是相对于当前用户的,并且存储在其计算机上

那么,我该怎么做呢


此处有与som相关的帖子,但响应与请求不匹配:

只有在未使用本机php会话处理程序时才有可能(这是
symfony
中的默认设置)。在这种情况下,您不知道其他用户的会话ID

您可以使用数据库作为会话存储—在
symfony.com
上有一个。一旦将会话存储在数据库中,销毁用户会话就是从数据库中删除正确的行


是的-
FosUserBundle
与此无关,它不是特定于此捆绑包的

据我所知,每次加载页面时,都会将会话中的用户与数据库中相应的用户进行比较。如果比较返回false,则用户将被迫再次登录

FOSUserBundle序列化要存储在会话上的一组用户数据,包括
enabled
字段。这意味着,如果您将用户
已启用
状态设置为
false
,则在下一页加载会话
已启用
将不等于数据库
已启用
,这意味着用户不平等,导致用户需要再次登录


要在没有FOSUSerBundle的情况下完成此操作,您只需在用户管理系统中包含某种类型的启用了的
字段,然后在序列化的每个页面加载上(或在所示的
isEqualTo
中)检查该字段,然后您就可以在下一个页面加载时注销用户。

ok。那么,也许将角色添加到序列化程序会起作用?我要试试