Библиотека
Я делаю проект с использованием данной библиотеки.
Я попытался добавить авторизацию по сохраненным кукам, но видимо, я делаю что-то неправильно, т.к продолжаю получать на почту письма об авторизации в аккаунт.
Правильно ли реализована авторизация по куки?
Вот мой код
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 по сути не вызывается, но инстаграм всё равно при каждом вызове фиксирует авторизацию.