使用 Symfony2 和 FOSUserBundle 更改角色时如何强制所有用户重新登录?

How to force the re-login to all users when roles are changed using Symfony2 and FOSUserBundle?

我有一个问题,当我执行一个重新加载所有用户角色的进程时,如何强制所有用户重新登录。

可以吗?我正在使用 FOSUserBundle 作为用户提供程序。

谢谢!

我从未使用过 FosUserBundle,但一种简单的方法是在 User Class implementing the EquatableInterface 中插入 isEqualTo 方法,例如:

# this comparison is ONLY indicative 

if ($this->roles !== $user->getRoles()) { 
    return false;
}

PS:在任何请求中,Symfony 检查分配的角色是否未更改(但您还可以添加其他字段来检查,如电子邮件、用户名等...),否则用户将自动断开连接(但没有向用户打印友好消息)