我正在尝试在我正在编写的Symfony2应用程序中实现双因素身份验证方案。基本上,系统目前正常工作,Doctrine ORM实体作为用户提供者。但是,我遇到了一个问题,即弄清楚如何正确且最有效地添加它。
基本上,身份验证应该如此工作。 用户看到登录表单。键入用户/密码组合,然后输入OTP(在本例中为yubikey。)
标准symfony2身份验证处理用户/密码就好了。但是,我想添加添加OTP支持的选项(前提是用户有yubikey的数据库条目,并且它在站点范围内启用。)
有没有人对这样的架构有运气?我想避免重新发明轮子,只需要弄清楚如何将其与当前的身份验证模式联系起来。
最初,我曾想过在我正在使用的自定义密码编码器(bcrypt)中使用isPasswordValid()函数。但是,似乎无法将otp传递给该函数。
答案 0 :(得分:1)
您需要编写一个自定义身份验证提供程序(我假设您正在使用基于默认实体的提供程序),该提供程序包含OTP相关逻辑。我不会在这里复制和粘贴Symfony的示例,但是documentation中有一个可供参考。