[英]Symfony check if user is authenticated
在我的Symfony项目中,我在User
实体中使用UserInterface
处理身份验证。 我还使用EquatableInterface
检查用户登录时是否更改了电子邮件。
public function isEqualTo(UserInterface $user)
{
if (!$user instanceof Account) {
return false;
}
if ($this->email !== $user->getEmail()) {
return false;
}
return true;
}
一切正常,但是当我在数据库中更改用户的电子邮件时,我并未注销,只是未通过身份验证,如以下屏幕截图所示。
因此,我想知道如何验证用户是否通过了控制器? 当isEqualTo
返回false时,如何强制用户注销?
我找到了解决方案,如果其他人遇到相同的问题,我想分享它。
要检查是否用户进行身份验证,我们需要TokenInterface这是由执行TokenStorage 。 然后,我们只需要调用isAuthenticated()方法。
$tokenInterface = $this->get('security.token_storage')->getToken();
$isAuthenticated = $tokenInterface->isAuthenticated()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.