使用 Google 验证器和 Symfony 安全

Using Google Authenticator with Symfony Security

我想在我的 Silex 应用程序中添加 2 因素登录。

但是,我在如何使其正常工作方面遇到了一些障碍。

我最大的症结是防火墙没有让用户完全登录,而是将他们定向到一个页面以确认他们的身份。

我考虑过使用 Symfony Guard,但查看文档时,我没有看到任何可以阻止用户登录的内容。

我还没有任何代码,此时,我只是想设计流程,在我有一个具体的执行计划之后,我打算开始编写代码。

我记得读过一篇关于在 Sf2 中执行此操作的博客 post,但我现在找不到了。要点如下:

  • 登录部分是正常的
  • 为控制器事件创建一个侦听器,并重定向到 2FA 控制器,除非用户具有角色(ROLE_GOOGLE_AUTHENTICATED 或类似角色)并且除非用户请求该路由
  • 在那个 url 上呈现一个表单并检查它是否是 post,如果代码验证添加该角色给用户

我相信您可以将其改编为 silex。您还可以检查 Sf2 的捆绑包,了解它们的工作原理。