我正在尝试自动化某些工作任务。我们有一个需要通过Google登录的门户网站。我创建了一个 Puppeteer 实例,导航到 Google 认证页面,输入我的电子邮件和密码,然后存储 cookie,以便我可以浏览并操作门户网站。
这在我的本地环境中完美地运行,但我已将其部署到 Heroku 并且 Google 添加了一个登录挑战。在输入密码后,我会收到“验证您的身份”页面,上面写着“此设备未被识别”,并要求我完成 2-FA 认证。
我知道我无法关闭 2-FA,那么绕过此问题的最佳方法是什么?
或者,是否有更简单的方法登录由 Google 认证保护的网站并存储会话 cookie?
以下是我的 Puppeteer 代码,非常感谢任何帮助:
这在我的本地环境中完美地运行,但我已将其部署到 Heroku 并且 Google 添加了一个登录挑战。在输入密码后,我会收到“验证您的身份”页面,上面写着“此设备未被识别”,并要求我完成 2-FA 认证。
我知道我无法关闭 2-FA,那么绕过此问题的最佳方法是什么?
或者,是否有更简单的方法登录由 Google 认证保护的网站并存储会话 cookie?
以下是我的 Puppeteer 代码,非常感谢任何帮助:
async function getCookies() {
const browser = await puppeteer.launch({
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-gpu'
]
})
const page = await browser.newPage()
await page.setUserAgent('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36')
await page.goto(process.env.URL)
await page.waitForSelector('#identifierId')
await page.type('#identifierId', process.env.EMAIL, { delay: 5 })
await page.click('#identifierNext')
await page.waitForSelector('#password input[type="password"]', { visible: true });
await page.type('#password input[type="password"]', process.env.PASS, { delay: 5 })
await page.click('#passwordNext')
await page.waitFor(3000)
const cookies = await page.cookies()
await browser.close()
return cookies
}