Node.js 使用REST API的基本身份验证进行双因素身份验证?

Node.js 使用REST API的基本身份验证进行双因素身份验证?,node.js,rest,basic-authentication,two-factor-authentication,Node.js,Rest,Basic Authentication,Two Factor Authentication,我正在实现一个RESTAPI,它既有移动应用程序,也有基于浏览器的客户端和用户。根据我在这里和security.stackexchange上提出的问题和以前的问题,我得出结论,要尽可能长时间保持“RESTful”,SSL上的HTTP基本身份验证就足以进行身份验证。问题是,我还想实现双重身份验证。在401授权标头响应中添加标头(如username:password:token)或在完全独立的请求标头中添加标头(但与客户端的基本身份验证响应位于同一负载中)是否可以接受?因为我使用的是node.js+

我正在实现一个RESTAPI,它既有移动应用程序,也有基于浏览器的客户端和用户。根据我在这里和security.stackexchange上提出的问题和以前的问题,我得出结论,要尽可能长时间保持“RESTful”,SSL上的HTTP基本身份验证就足以进行身份验证。问题是,我还想实现双重身份验证。在401授权标头响应中添加标头(如username:password:token)或在完全独立的请求标头中添加标头(但与客户端的基本身份验证响应位于同一负载中)是否可以接受?因为我使用的是node.js+express/connect,所以我可以访问整个HTTP协议栈,但出于可伸缩性的原因,我希望尽可能保持restful。在浏览器端,我想我可以做基本的AUTH,如果它通过了,要求TFA令牌,并且只有当它通过时,考虑用户认证。

< P>你可以在技术上弥补从HTTP Basic AuthTM扩展的新的认证方案,但是它们一般不会被浏览器支持。在您的示例中,我不相信任何浏览器都能够以与请求用户名和密码相同的方式本地请求和发送username:password:token

通常,双因素身份验证方案通过使用某种形式的会话将用户置于中间状态来工作,如您在第二个示例中所述。通过第一个因素(例如用户名/密码通过基本身份验证)的用户打开了一个会话,但在通过第二个因素之前未标记为真正登录。输入加密狗代码或类似的东西。一旦这两个因素都通过,他们的会话将被标记为完全登录,他们可以访问他们的帐户/数据/任何内容