Laravel 5多重身份验证

时间:2015-06-28 21:59:50

标签: php authentication laravel-5 two-factor-authentication fido-u2f

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

我希望将选择留给我的用户,在哪些以及需要多少身份验证方法。因此我知道我正在考虑编写一些特殊的东西来实现这一目标,但我不知道从哪里开始。

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

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

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

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

因此,我发布的原因是寻找最佳方式的输入,以实现我正在寻找的目标。

1 个答案:

答案 0 :(得分:1)

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

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

并在现有的身份验证中间件中使用它。 这样,您可以将中间件部分中的逻辑切换为一个比较。

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