【发布时间】:2023-03-15 08:29:01
【问题描述】:
我很惊讶我没有找到任何关于使用护照的 laravel 双重身份验证的实际示例或最佳实践。
由于我想在用户登录 API 并收到他的访问令牌时执行此步骤,所以我不确定如何以安全的方式进行操作。
目前的流程如下:
- 用户看到前端登录页面 (vue SPA)。
- 用户输入
username和password并点击提交。 - SPA 向 API 发送请求。
- API 会使用访问令牌进行响应,如果出现问题,则会给出未经身份验证的错误。
- SPA 可以使用访问令牌从 API 请求其他资源,直到令牌失效。
由于我想让用户单独激活或停用 2FA(因为有些客户可能不想使用它,有些客户会),如果启用 2FA 或不是。
但是接下来如何继续呢?用户是否应该像以前一样定期使用username 和password 进行身份验证,然后API 知道他是否“需要”第二个身份验证步骤并返回一个标志,以便前端知道显示另一个视图以输入令牌?
感谢您的任何意见:)
【问题讨论】:
-
您可能想先验证用户身份,以便知道哪个用户启用了 2FA。此外,如果密码错误,没有必要要求 2FA,所以先验证用户身份,然后要求 2FA(或不要求)
-
在所有后续请求中,我也会检查第二个令牌(如果启用了 2FA),对吧?
-
您可以使用中间件进行该检查。你也可以利用 Laravel Fortify,因为它可以处理 2FA
标签: laravel laravel-passport two-factor-authentication