4

每当我编辑用户的角色时,用户都需要注销并重新登录以查看更改。提升用户时没有问题,因为他们在再次登录之前不会看到额外的权限。但是,当降级发生时,用户仍将保留其现有角色,这会带来安全风险。想象一下撤销一个流氓员工的管理员用户,并且仍然让他们能够做任何事情(例如破坏系统),直到他们注销!

是否可以使与特定用户相关的所有会话或令牌无效?如果有另一种方法可以在不注销用户的情况下动态更新用户的角色,我很想听听!

为了清楚起见,我并不是要使当前登录的用户的会话/令牌无效。

提前致谢!

4

1 回答 1

2

Symfony_security_match_firewall_name在 session 的 key 下存储序列化的 token 对象。您可以对其进行反序列化,过滤角色,然后再次保存。对于读取/保存会话值,您可以使用PdoSessionStorage. 您可能必须创建一个额外的表来跟踪用户会话。

于 2012-03-10T19:37:21.073 回答