2014-10-24 3 views
0

Я пытаюсь использовать модуль Node Request для аутентификации на веб-сайте, и после выполнения instructions я до сих пор не могу понять это ...Попытка использовать узел запроса аутентификации

Использование CoffeeScript I «ве сделали следующее:

Request { 
    url: "https://#{encodeURIComponent(config.email)}:#{encodeURIComponent(config.password)}@#{config.loginURL}" 
}, (error, response, body) -> 
    if error 
     console.log error 
    else 
     console.log body 

В config значения, соответственно, адрес электронной почты, пароль и URL. URL-адрес: app.shopify.com/services/partners/auth/login. Кроме того, поскольку имя пользователя является адресом электронной почты, я подумал, что лучше всего использовать encodeURIComponent значения входа.

Когда я запускаю это, я не получаю сообщение об ошибке, но вывод body - это просто разметка страницы входа.

Я также попытался сделать это следующим образом:

Request.get config.loginURL, { 
    auth: { 
     username: config.email 
     password: config.password 
     sendImmediately: false 
    } 
}, (error, response, body) -> 
    if error 
     console.log error 
    else 
     console.log body 

В этом случае, так как учетные данные не являются частью URL, я не encodeURIComponent «d их. Кроме того, к URL-адресу входа добавлен https://.

Может ли кто-нибудь вести меня в правильном направлении?

+0

Что случилось со вторым случаем (это 'error' установлен? что такое 'response.statusCode'?)? Вы пытались с 'sendImmediately: true'? Вы проверяли 'config.email' и' config.password', чтобы убедиться, что они действительны (по крайней мере, не пусты)? – mscdex

+0

Установка @mscdex 'sendImmediately' в' true', похоже, ничего не делала (хотя я не уверен, что такое «дайджест-аутентификация»), я могу подтвердить, что значения конфигурации установлены, а строки и коды ответов от оба случая - 200. Итак, я все понял правильно? –

ответ

0

Если страница не использует основной/дайджест-проверки подлинности и вместо того, чтобы с помощью проверки подлинности на основе форм, необходимо POST значения формы вместо:

request(config.loginURL, { 
    method: 'POST', 
    form: { 
    // these key names come from the `name` field in the login form's HTML 
    login: config.email, 
    password: config.password 
    } 
}, function(err, res, body) { 
    // ... 
}); 
+0

Отлично, спасибо! –

Смежные вопросы