2013-07-09 2 views
0

Я пытаюсь сделать WebAPI вызов от сервера сценария и я получаю сообщение об ошибке аутентификации:Ошибка аутентификации в Node.js

Это как мой server.js выглядит следующим образом:

var app = require('http').createServer() 
    , io = require('socket.io').listen(app) 
    , fs = require('fs') 
    , moment = require('moment') 
    , request = require('request'); //https://github.com/mikeal/request 

app.listen(8000, function() { 
    console.log('server started'); 
    doSomethingOnServerStart(); 
}); 


function doSomethingOnServerStart() 
{ 
    console.log('Getting something from server'); 

    request.get({ 
     url: 'http://localhost:63213/Api/MyAPI/GetSomething', 

    }, 
     function (error, response, body) { 
      console.log(response.statusCode); 
      if (response.statusCode == 200) { 

       console.log('data received from server'); 

      } else { 
       console.log('error: ' + response.statusCode); 
       console.log(body); 
      } 
     }); 

} 

Я используя библиотеку запросов Mikeal для вызова WebAPI. В разделе HTTP Authentication (https://github.com/mikeal/request#http-authentication) он говорит, что имя пользователя и пароль передаются как «хеш», но не говорят, как я могу сгенерировать этот хеш.

Я как бы застрял и не знаю, как действовать дальше.

+0

Не могли бы вы задать этот второй вопрос на вопрос. Затем я переведу свой ответ на этот вопрос, чтобы вы могли принять его, если это вам по душе. Давайте будем держать вопросы и сообщения на одном-на-одном в Stack Overflow :) – kentcdodds

+0

@kentcdodds: спасибо за ваш ответ. вот ссылка на отдельный вопрос: http://stackoverflow.com/questions/17558409/how-do-i-avoid-stroing-username-password-when-using-request-module-with-node-js – Asdfg

+0

I надеюсь, что мои ответы помогли вам. – kentcdodds

ответ

1

Для решения вашего первоначального вопроса, судя по the documentation это выглядит, как вам нужно сделать дополнительный вызов прикована функцией:

request.get('http://some.server.com/').auth('username', 'password', false); 

или как это

request.get('http://some.server.com/', { 
    'auth': { 
    'user': 'username', 
    'pass': 'password', 
    'sendImmediately': false 
    } 
}); 

Во втором случае он упоминает, имеющими иметь auth как хэш (как он выше). Кажется, вы не отправляете имя пользователя или пароль в любом месте вашего кода ...

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