Symfony2 - 拦截登录以检查用户是否已启用

标签 symfony

我已经实现了自己的激活机制,用户首先必须确认电子邮件才能登录系统。但是,拦截登录以检查用户是否已激活的最佳实践是什么?

我想简单地进行检查,例如:

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/

相关文章:

jquery - 如何在 symfony2 中接收 JSON

php - 在自定义 Symfony 命令中使用 Doctrine?

symfony - 使用 Symfony 2.1 的弹性负载均衡器

php - 试图从命名空间 "WebpackEncoreBundle"加载类 "Symfony\WebpackEncoreBundle"。您是否忘记了另一个命名空间的 "use"语句?

symfony - LexikJWTAuthenticationBundle 为匿名路由上的无效 token 返回 401

Symfony2 可翻译包和最安全的多语言方法

Symfony2 - block 类型 sonata.user.block.menu 不存在

symfony - Symfony2 中的多个动态数据库连接

javascript - uglifyjs - symfony assetic 转储, Node 路径

php - 如何访问 Symfony 2 中的 bundle 实例?