Пытаюсь авторизоваться на Github (не OAuth), через простую форму авторизации сайта.
Для работы с HTTP, я использую библиотеку unirest + cheerio для парса токена.
var unirest = require('unirest');
var cheerio = require("cheerio");
var login = 'ЛОГИН';
var password = 'ПАРОЛЬ';
var cookies = '';
unirest.get('https://github.com/login')
.headers({
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'
})
.end(function (response) {
var $ = cheerio.load(response.body);
var token = $("input[name='authenticity_token']").val();
var headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
'Cookie': '_gh_sess='+response.cookies._gh_sess,
};
var post_data = {
'authenticity_token': token,
'login': login,
'password': password
};
unirest.post('https://github.com/session')
.headers(headers)
.send(post_data)
.end(function (response) {
console.log(response.cookies);
});
});
Я в ответ получаю ошибку + куки пусты. Хотя тестирую через Paw (или любой другой софт для работы с HTTP тестированием запросов и там норм).
Ответ от сервера должен быть примерно такой: