我有一个User
实体,该实体具有boolean列isActivated
。根据每个用户的列的值,他是否可以登录(即,他尚未激活帐户,所以无法登录)。我通过simple_form.authenticator
在防火墙中分配一个在每次登录时进行检查的方法来实现这一点。
我正在尝试找出在用户仍然登录时如何强制注销用户。
请考虑以下情形:
不幸的是,第3步没有发生。原因可能在于用户已经收到了令牌,并被Symfony 2.5
防火墙认为是“受了折磨” (可能令牌已缓存在安全上下文中了?)。
我想知道克服这个问题的最佳方法是什么?我应该编写内核事件侦听器还是自定义用户提供程序?
您可以使用以下两行终止用户的会话(如果您有权访问容器,否则必须注入security.context
和session
):
$container->get('security.context')->setToken(null);
$container->get('session')->invalidate();
此后,应注销用户。
如果您之前已加载用户实体,则可能也要取消设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句