Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript API服务器登录后出现401错误_Javascript_Node.js_Meteor - Fatal编程技术网

Javascript API服务器登录后出现401错误

Javascript API服务器登录后出现401错误,javascript,node.js,meteor,Javascript,Node.js,Meteor,我已经在meteorjs中使用以下代码成功登录到API服务器 var request = Npm.require('request'); request('http://api-server-link-here', { 'auth' : { 'user': 'username', 'pass': 'password', 'sendImmed

我已经在meteorjs中使用以下代码成功登录到API服务器

var request = Npm.require('request');
        request('http://api-server-link-here',

        {

            'auth' : {

                'user': 'username',
                'pass': 'password',
                'sendImmediately': false
            }

        }

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

        } 
但在这次登录之后,当我使用下面的代码进行搜索查询时。我得到Http状态401错误

var request = Npm.require('request');
         request("http://search-query-link-here",

         {

        //search query parameters are here

         },


         function(error,response,body){

        console.log(response);

         });
谁能告诉我为什么会发生这个问题。或者如果这是可能的,我在这里得到一个工作的例子


这里还需要说明的一件事是,我正在使用摘要身份验证进行登录

显然,很难为未知API提供一个工作示例

但是让我们试着解决它。从逻辑上讲,当您发送搜索查询时,您应该确定自己的身份。大多数公共API服务器使用令牌(很可能)或会话cookie来授权对资源的访问。因此,每当您执行第二个(搜索)请求时,您要么提供令牌,要么发送从第一个(登录)请求获得的cookie

长话短说,验证API服务器正在使用哪种机制

  • 如果是令牌:检查登录请求的响应主体;很可能在API调用的
    Authorization
    头中会有一个访问令牌,在请求选项中:
    头:{'Authorization':'Bearer…}
  • 如果是会话:请确保在登录时启用了cookie jar,并为后续请求启用它:

我在digest auth的帮助下登录。那么,你现在怎么说呢?有没有任何例子与digest auth相同?digest auth也可以,但最有可能的是它应该只在登录时使用一次,这对你来说没有任何问题。对于搜索呼叫,您最有可能发送一个令牌/cookie,作为您摘要身份验证的结果。这似乎非常有用,我将在这里检查并回复您。感谢您的指导。我的问题已经解决了。实际上,我随后使用了服务器发送回我的cookie。