Node.js 双因素认证

4
我正在使用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个回答

1
双因素身份验证(2FA)是一种原则,您需要通过两个独立的因素才能授权访问资源。1. 您知道的东西(登录/密码)2. 您拥有的东西(安装了2FA应用程序的手机,如Google Authenticator、Authy,我认为Steam也制作了一个此类应用程序)。
如果我理解得正确-您想要在您的应用程序中存储密码和2FA详细信息。可能有一种技术方式可以做到这一点,但我不会使用这样的应用程序。这是一个重大的安全问题。最好每次要求您的应用程序用户提供登录/密码,并且如果Steam API要求第二个因素-请向用户询问。
正如我所看到的大多数API-您可能可以获得特殊的令牌,以便用户无需存储密码等就可以每次提供代码。查看文档-您会找到它。(除非您不使用任何官方Steam API,但从代码来看,您可能确实使用了)

这个程序实际上是循环登录多个账户,从一个 .txt 文档中读取用户名和密码,但有可能在 .txt 中有一个或多个启用了双重认证的账户。现在我的程序已经意识到这一点,并提示用户手动输入验证码,但我想让我的程序自动获取任何启用了双重认证的账户的验证码并自动输入。但感谢您的评论,我从未考虑过尝试查找账户的特殊令牌。 - jeff pierce
看看这个 OTP 主题 https://security.stackexchange.com/a/47904/18504 看起来你想要的应该是可能的,假设你能够获取到种子数据(我不是专家,但我猜这就是你设置 2FA 时向你显示的 QR 码,所以在 Steam 帐户中通常早已消失)。 - Greg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接