Problemas para iniciar sesión en Google con Chrome / Titiritero sin cabeza

Estoy tratando de automatizar ciertas tareas para el trabajo. Tenemos un portal que requiere que inicies sesión a través de Google. Creé una instancia de Puppeteer que navega a la página de autenticación de Google, escribe mi correo electrónico y contraseña, luego almacena las cookies para que pueda navegar y manipular el portal.

Esto funciona perfectamente en mi entorno local, pero lo he implementado en Heroku y Google agrega un desafío de inicio de sesión. Después de ingresar la contraseña, aparece la página "Verificar que eres tú" que dice "Este dispositivo no es reconocido" y me pide que complete la autenticación 2-FA.

Sé que no puedo desactivar 2-FA, entonces, ¿cuál sería la mejor manera de evitar esto?

Alternativamente, ¿hay una manera más fácil de iniciar sesión en un sitio web protegido por la autenticación de Google y almacenar las cookies de sesión?

Aquí está mi código de titiritero, cualquier ayuda sería muy apreciada:

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
  }

Respuestas a la pregunta(4)

Su respuesta a la pregunta