Laravel 5多因素身份验证



我正在考虑为我的一个项目实现双因素身份验证。我看到了:https://github.com/bitbeans/Yubikey
https://github.com/antonioribeiro/google2fa
https://github.com/lahaxearnaud/laravel-u2f

我想让我的用户自己选择,需要使用哪些和多少种身份验证方法。因此,我知道我正在考虑编码一些特别的东西来实现这一点,但我不确定从哪里开始。

我的目标是让用户不使用任何额外的身份验证方法,或者允许他们使用所有可用的额外身份验证方法。理想情况下,登录表单只需要用户名/密码;在输入正确的凭证后,用户将被引导到用户选择使用的每个身份验证方法的新页面。

laravel-u2f使用中间件;我并不反对这样做,但似乎有太多额外的逻辑需要处理每个请求,而不仅仅是在登录用户时

我已经考虑过更换默认的Auth驱动程序,但我不确定这是最好的做法。

我最后的想法;我倾向于监听"auth.tempt"事件,并使用它来检查需要进行哪些额外的身份验证。但我不确定如何处理从中获取额外身份验证信息的最佳方式。

所以我发帖的原因是为了寻找实现我想要的目标的最佳方式。

您可以放置一个值,例如full_authenticated

Session::put('full_authenticated', 'false');

并在现有的认证中间件中使用。通过这种方式,您可以将中间件部分中的逻辑简化为一个比较。

如果以后要添加更多的身份验证方法,则应实现通用身份验证方法的接口/约定。然后编写一个身份验证管理器类,该类在会话中设置full_authenticated,并为不同的用户处理不同的方法。

最新更新