我正在考虑为我的一个项目实现双因素身份验证。我见过:https://github.com/bitbeans/Yubikey
https://github.com/antonioribeiro/google2fa
https://github.com/lahaxearnaud/laravel-u2f
我想让我的用户来选择,到底需要哪些方法和多少种认证方法。因此,我知道我正在考虑编写一些特殊的代码来实现这一点,但我不知道从哪里开始。
我的目标是使用户不使用任何其他身份验证方法,或者允许他们使用所有可用的其他身份验证方法。理想情况下,登录表单只需要用户名/密码;输入正确的凭据后,用户将被定向到用户选择使用的每个身份验证方法的新页面。
laravel-u2f使用中间件;我并不反对这样做,但似乎处理每个请求的额外逻辑太多了,而不仅仅是在登录用户时。
我考虑过替换默认的Auth驱动程序,但我不确定这是最好的选择。
我的最后想法是,我倾向于侦听"auth.attempt“事件,并使用它来检查需要做什么额外的身份验证。但是,我不知道如何处理从其中获取更多身份验证信息的最佳方法。
因此,我张贴的原因是寻找投入的最佳方式,以实现我正在寻找的。
发布于 2015-06-29 02:36:17
您可以放置一个值,例如full_authenticated
Session::put('full_authenticated', 'false');
并在现有的身份验证中间件中使用。这样,您就可以将中间件部分中的逻辑切割为一个比较。
如果您想在以后添加更多的身份验证方法,则应该为一般身份验证方法实现一个接口/契约。然后编写一个身份验证管理器类,它在会话中设置full_authenticated,并为不同的用户处理不同的方法。
https://stackoverflow.com/questions/31105213
复制相似问题