@kr_ilya

Почему не работает авторизация по куки instagram-private-api?

Библиотека
Я делаю проект с использованием данной библиотеки.
Я попытался добавить авторизацию по сохраненным кукам, но видимо, я делаю что-то неправильно, т.к продолжаю получать на почту письма об авторизации в аккаунт.
Правильно ли реализована авторизация по куки?
Вот мой код
import { IgApiClient } from '../src';
import { readFile, appendFileSync, writeFile } from 'fs';
import * as os from 'os';
import { config } from './config';

import { promisify } from 'util';

const readFileAsync = promisify(readFile);

const IG_USERNAME = config.instLogin;
const IG_PASSWORD = config.instPass;

const ig = new IgApiClient();

function fakeSave(data: object) {
  writeFile('session.txt', JSON.stringify(data), (err) => {
    if (err) throw err;
  });
  return data;
}

async function fakeExists() {
    let d = await readFileAsync('session.txt', "utf8");
    if(d){ 
      return true;
    }else{
      return false;
    }
}

async function fakeLoad() {
  let cook = await readFileAsync('session.txt', "utf8");
  return JSON.parse(cook.toString());
}

async function login() {
    // This function executes after every request
  ig.request.end$.subscribe(async () => {
    const serialized = await ig.state.serialize();
    delete serialized.constants; // this deletes the version info, so you'll always use the version provided by the library
    fakeSave(serialized);
  });
  let fe = await fakeExists();

  if (fe) {
  	console.log('FE');
    // import state accepts both a string as well as an object
    // the string should be a JSON object
    await ig.state.deserialize(await fakeLoad());
  }else{
  	console.log('LOGIN');
  	  ig.state.generateDevice(IG_USERNAME);
	  await ig.account.login(IG_USERNAME,IG_PASSWORD);
  }
}
// console.log(process.argv);
(async () => {
  await login();
...
});


В консоль каждый раз попадает FE. Т.е ig.account.login по сути не вызывается, но инстаграм всё равно при каждом вызове фиксирует авторизацию.
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы