php – 如何强制注销Symfony中的用户?
发布时间:2020-12-13 21:58:08 所属栏目:PHP教程 来源:网络整理
导读:我有一个User实体,它有一个布尔列isActivated.根据每个用户的列值,他可能会或可能无法登录(即他没有激活他的帐户,因此无法登录).我通过在防火墙中分配一个simple_form.authenticator来检查每次登录时实现了这一点. 我正在试图弄清楚当用户仍在进入时如何强制
我有一个User实体,它有一个布尔列isActivated.根据每个用户的列值,他可能会或可能无法登录(即他没有激活他的帐户,因此无法登录).我通过在防火墙中分配一个simple_form.authenticator来检查每次登录时实现了这一点.
我正在试图弄清楚当用户仍在进入时如何强制注销用户. >用户在其帐户仍处于活动状态时登录. 不幸的是,第3步没有发生.原因可能在于用户已经收到令牌,并且被Symfony 2.5的防火墙视为“篡改”(可能是令牌被缓存在安全上下文中?). 我想知道克服这个问题的最佳方法是什么?我应该编写内核事件监听器还是Custom User Provider? 解决方法
您可以使用以下两行终止用户的会话(如果您有权访问容器,否则必须注入security.context和session):
$container->get('security.context')->setToken(null); $container->get('session')->invalidate(); 之后,用户应该注销. 如果您之前加载了用户实体,您也可能想要取消设置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |