我已经实现了自己的激活机制,用户首先必须在登录系统之前确认电子邮件。但是,拦截登录以检查用户是否已被激活的最佳做法是什么?
我想简单地检查,例如:
if (!$user->isEnabled())
//TODO refuse login
我是否添加 onSecurityInteractiveLogin 侦听器?或者我必须自己实现整个登录机制?
答案 0 :(得分:5)
我通过使用以下界面找到了解决此问题的方法:
Symfony\Component\Security\Core\User\AdvancedUserInterface
并实施了isEnabled()
方法。
如果我现在尝试使用非活动用户登录,则会抛出Symfony\Component\Security\Core\Exception\DisabledException
。