Ответы пользователя по тегу Node.js
  • Как запомнить авторизацию сайта на nodejs?

    @nicolaa Автор вопроса
    К сожалению решить данную задачу через nightmare не получилось
    Решил с помощью puppeteer

    Пример - сохранение кук в фаил

    const puppeteer = require('puppeteer')
    const fs = require('fs');
    
    (async () => {
      const browser = await puppeteer.launch()
      const page = await browser.newPage()
    
      await page.goto('https://github.com/login')
    
      await page.type('#login_field', process.env.GITHUB_USER)
      await page.type('#password', process.env.GITHUB_PWD)
    
      await page.waitForSelector('.js-cookie-consent-reject')
      await page.click('.js-cookie-consent-reject')
      await page.$eval('[name="commit"]', (elem) => elem.click())
      await page.waitForNavigation()
    
      const cookies = await page.cookies()
      const cookieJson = JSON.stringify(cookies)
    
      fs.writeFileSync('cookies.json', cookieJson)
    
      await browser.close()
    })()


    Чтение кук из файла
    const puppeteer = require('puppeteer')
    const fs = require('fs');
    
    (async () => {
      const browser = await puppeteer.launch()
      const page = await browser.newPage()
    
      const cookies = fs.readFileSync('cookies.json', 'utf8')
    
      const deserializedCookies = JSON.parse(cookies)
      await page.setCookie(...deserializedCookies)
    
      await page.goto(`https://github.com/${process.env.GITHUB_USER}`)
    
      await browser.close()
    })()

    Статья
    Ответ написан
    Комментировать