Node.js双因素身份验证

时间:2017-08-17 14:42:12

标签: node.js authentication two-factor-authentication

我正在使用node.js开发个人程序,该程序专门为Steam应用程序使用身份验证。登录从外部.txt文件读取用户名和密码,它使用数组定位工作,由':'(冒号)拆分。现在这是我需要帮助的地方。对于某些帐户,Steam使用双因素代码,该代码是在移动应用或电子邮件中按时间随机生成的。这时,我有我的程序,所以它检查帐户是否启用了身份验证代码,如果有,我提示手动输入适当的双因素代码。我知道有一种方法可以合并我的程序来提取这个身份验证代码并将其放入,而无需用户手动执行,但我不知道从哪里开始。

问题:我希望程序能够提取随机生成的代码,并自动将其设置为无需手动操作。

代码如下:

else if (eresult === Steam.EResult.AccountLoginDeniedNeedTwoFactor)
 {
    login.two_factor_code = readline.question(`[${param[0]}] Mobile auth code: `);
    client.disconnect();
    client.connect();
      }
else if (eresult === Steam.EResult.AccountLogonDenied) 
{
   login.auth_code = readline.question(`[${param[0]}] Steam Guard code: `);
   client.disconnect();
   client.connect();
}

谢谢。

1 个答案:

答案 0 :(得分:1)

双因素身份验证(2FA)是您通过两个单独的因素授权资源的原则。 1.你知道的东西(登录/通过)2。你拥有的东西(安装了2FA应用程序的手机,如Google身份验证器,Authy,我认为这是Steam制作的应用程序)。

如果我理解正确 - 您希望在应用中存储密码和2FA详细信息。可能有技术方法,但我不会使用这样的应用程序。这是一个很大的安全禁忌。最好每次都要求您的应用用户提供登录/密码,如果Steam API要求第二个因素 - 请用户询问。

正如我看到的大多数API - 你可能会得到一个特殊的令牌,因此用户不必每次登录并提供代码而不存储密码等。挖掘文档 - 你会发现它。 (除非您不使用任何官方Steam API,但它看起来就像您可能执行的代码)