Puppeteer - 授权设备 (2FA)

ste*_*jan 4 one-time-password two-factor-authentication puppeteer

有没有办法授权 Puppeteer 进行 2FA 身份验证?

设想:

  1. 运行 Puppeteer 并访问受 2FA 保护的 URL
  2. 输入凭据并等待重定向
  3. 请求一次性密码
  4. 输入密码
  5. 等待重定向
  6. 关闭 Puppeteer 实例

  7. 运行 Puppeteer 并访问受 2FA 保护的 URL

  8. 应该加载受保护的页面,不再询问密码

这种情况不适用于我的情况:(

还有其他库可以成功完成此场景吗?

小智 5

使用 puppeteer 处理 2FA 有两种可能的情况,具体取决于情况的性质(从您提出问题的方式来看并不完全清楚)。

  1. 复制会话数据(在这种情况下,您不能让别人第二次向您提供代码,您将来需要完全绕过它):

我假设您正在处理的网站正在浏览器上执行某种分析,以确定是否提示输入 2FA 代码。根据我的经验,有时会有一个您无法控制的随机元素,但复制确切的浏览器状态(用户数据、cookies 等)是一个开始。将其与之前已正确回答的一致 IP 地址配对,我认为机会非常非常大。

请参阅此处的代码,或者如果代码太繁重,这里是我用来保存会话数据的函数的简单实现:简单代码。简而言之,我正在转换会话数据、cookies——区分 chromium 实例的所有内容并将其填充到 base64 字符串中,然后我只需加载该数据并假设浏览器之前的确切状态。我很确定这就是你想要的。

  1. 互动机器人

我不确定这是否适用于您的用例,但我遇到了一种情况,当木偶操纵者正在执行登录过程时,我需要从用户的电话/电子邮件中实时提取 2FA 代码。浏览器无法重新启动,因为 2FA 代码不再有效。这不是一个小问题。我最终使用 Redis 并构建了一个木偶剧院框架,该框架在我遇到的几乎所有抓取/自动化工作流程中都解决了这个用例。

如果您正在寻求具体帮助,请随时与我们联系。

  • 嘿@Nico,恐怕你第一个答案中的链接现在已经404了..我也很期待它们:) (3认同)