我已经实现了自己的激活机制,用户首先必须确认电子邮件才能登录系统。但是,拦截登录以检查用户是否已激活的最佳实践是什么?
我想简单地进行检查,例如:
if (!$user->isEnabled())
//TODO refuse login
我要添加一个onSecurityInteractiveLogin监听器吗?还是我必须自己实现整个登录机制?
最佳答案
我通过使用以下接口(interface)找到了解决此问题的方法:
Symfony\Component\Security\Core\User\AdvancedUserInterface
并实现了 isEnabled()
方法。
如果我现在尝试使用非事件用户登录,它会抛出 Symfony\Component\Security\Core\Exception\DisabledException
。
关于Symfony2 - 拦截登录以检查用户是否已启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8473460/