php – 如何强制注销Symfony中的用户?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何强制注销Symfony中的用户?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个User实体,它有一个布尔列isActivated.根据每个用户的列值,他可能会或可能无法登录(即他没有激活他的帐户,因此无法登录).我通过在防火墙中分配一个simple_form.authenticator来检查每次登录时实现了这一点.

@H_403_8@

我正在试图弄清楚当用户仍在进入时如何强制注销用户.
请考虑以下情形:@H_403_8@

>用户在其帐户仍处于活动状态时登录.
>管理员停用用户的帐户.
>用户退出,因为它已不再处于活动状态.@H_403_8@

不幸的是,第3步没有发生.原因可能在于用户已经收到令牌,并且被Symfony 2.5的防火墙视为“篡改”(可能是令牌被缓存在安全上下文中?).@H_403_8@

我想知道克服这个问题的最佳方法是什么?我应该编写内核事件监听器还是Custom User Provider?@H_403_8@

解决方法

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

@H_403_8@

@H_403_8@

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

之后,用户应该注销.@H_403_8@

如果您之前加载了用户实体,您也可能想要取消设置.@H_403_8@

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何强制注销Symfony中的用户?全部内容,希望文章能够帮你解决php – 如何强制注销Symfony中的用户?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: