Webdesus
@Webdesus

Как сделать node.js аутентификацию на стороннем ресурсе?

Добрый день.
Имеется сайт написанный на asp к коду которого я не имею доступ. Программист поддерживающий ресурс все обещает написать внешнее службу для отправки данных. Но это длится уже долго, а данные для ведения своей аналитической деятельности нужно сейчас.
Проблема в том что там нужно сначала ввести логин и пароль. А данные я хочу собирать автоматические.
Аутентификация по ходу не базовая используется по тому как я не вижу чтоб браузер в заголовках хранил эту инфу после успешного захода. Да и попытки так зайти все мои провалились. По этому я решил использовать модуль request. И сначала послать post на авторизацию а дальше сохраненные куки использовать для get запросов. И вот тут начались проблемы.
Для аутентификации используется страница login с которой потом отправляется Form Data с логином и паролем.
Путем различных экспирементов родил такой код:

var postData={
    Login: 'login', PWD: 'pasword'
};
require('request').post({
    uri:"http://mysite/Login.asp",
    headers:{'content-type': 'application/x-www-form-urlencoded'},
    body:require('querystring').stringify(postData)
},function(err,res,body){
    console.log(body);
});


В итоге получать начал следующий результат:
<head><title>Object moved</title></head>
<body>
<h1>Object Moved</h1>This object may be found <a HREF="/Main.asp">here</a>.</body>

Вроде как мы зашли и нас переправило на главную страницу и в силу ограниченности модуля, он просто не смог на нее попасть, но все мои посылки get вели опять на страницу Login.asp. Я уже и куку свою генерил и отправлял ее и в post и затем в get.

Отсюда и возникает вопрос о реальности моего хотения. Как правильно все это сделать, потому что нутром чую что можно как то это все сделать легче и не передавать логин и пароль в явном виде.

  • Вопрос задан
  • 3013 просмотров
Решения вопроса 1

1. Активируйте куки: var request = request.defaults({jar: true})
2. Также попробуйте добавить параметр: followAllRedirects: true
3. Ну и почему вы не можете дальше в callback от post добавить request.get('http://mysite/Main.asp', function(err,res,body){ console.log(body); });

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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