如何在Symfony中强制注销用户?

tftd

我有一个User实体,该实体具有boolean列isActivated根据每个用户的列的值,他是否可以登录(即,他尚未激活帐户,所以无法登录)。我通过simple_form.authenticator在防火墙中分配一个在每次登录时进行检查的方法来实现这一点

我正在尝试找出在用户仍然登录时如何强制注销用户。
请考虑以下情形:

  1. 用户在其帐户仍处于活动状态时登录。
  2. 管理员停用用户帐户。
  3. 由于该用户不再处于活动状态,因此已注销。

不幸的是,第3步没有发生。原因可能在于用户已经收到了令牌,并被Symfony 2.5防火墙认为是“受了折磨” (可能令牌已缓存在安全上下文中了?)。

我想知道克服这个问题的最佳方法是什么?我应该编写内核事件侦听器还是自定义用户提供程序

x

您可以使用以下两行终止用户的会话(如果您有权访问容器,否则必须注入security.contextsession):

$container->get('security.context')->setToken(null);
$container->get('session')->invalidate();

此后,应注销用户。

如果您之前已加载用户实体,则可能也要取消设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章