如何使用 passportjs 实现可选的双因素身份验证

How to implement optional two factor authentication with passportjs

我已经在 Express 中使用 passportjs 本地身份验证策略实现了 API,现在我想通过增加用户使用双因素身份验证登录的可能性来加强安全性,因为它存在 passport -totp 策略,我阅读了它并看到了一些工作示例,但我还没有找到我想要实现的内容。我想在同一条路线上(比如说 /login)检查身份验证用户之前是否启用了 2fa(这将由用户设置处理),如果启用,则只有在用户完成通过遵循 2fa 附加验证进行身份验证,如果未启用,则通过简单的 login/password 凭据对用户进行身份验证。

如果有人能向我解释如何去做(大图)或者如果您知道任何类似实施的示例,我将非常高兴!

谢谢

我最后放弃了 passport-totp,使用本地策略实现了简单的身份验证流程,并添加了一个自定义层来处理第二个因素