На самом деле я могу использовать Twilio API в Puppeteer для программного получения кода SMS. Для этого вам нужно будет настроить специальную учетную запись Google для работы с номером Twilio в качестве мобильного телефона ИЛИ изменить текущий номер мобильного аккаунта Google для номера Twilio и использовать свой обычный номер в качестве дополнительного контакта в данных своей учетной записи Google.
аюсь автоматизировать определенные задачи для работы. У нас есть портал, который требует от вас войти через Google. Я создал экземпляр Puppeteer, который переходит на страницу авторизации Google, вводит мой адрес электронной почты и пароль, затем сохраняет куки, чтобы я мог перемещаться по порталу и манипулировать им.
Это отлично работает в моей локальной среде, но я развернул его в Heroku, и Google добавляет вызов для входа. После ввода пароля мне предоставляется страница «Проверьте, что это вы», на которой написано «Это устройство не распознано», и просит меня выполнить аутентификацию 2-FA.
Я знаю, что не могу выключить 2-FA, так что будет лучшим способом обойти это?
В качестве альтернативы, есть ли более простой способ войти на веб-сайт, защищенный Google auth, и сохранить куки сессии?
Вот мой код кукловода, любая помощь будет высоко ценится:
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
}