基本身份验证:失败supergaent + OSX,superagent + Redhat成功,Postman + OSX成功,

时间:2016-10-15 20:43:14

标签: basic-authentication darwin superagent

使用POSTMAN,一切都很好:

我将相同的标题,参数,...传递给superagent,如下所示:

const superagent = require('superagent');
const grab = require('ps-grab');


superagent.get('https://x.rathath.net/issue_statuses.json')
    .set({
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    })
    .auth(grab('--user'),grab('--password'))
    .send({})
    .end((error,response)=>{
        console.log(response.text);
    });

然而它失败了!

我有一个疑问:superagent + Authorization Header + OSX ..我的意思是这三者的兼容性。

事实上,我在Redhat机器上运行相同的javascript代码段并且工作正常。

1 个答案:

答案 0 :(得分:0)

不同之处在于您可能正在调用另一个域,而不是运行js应用程序的域。这叫做CORS。当您这样做,结合身份验证,服务器需要返回CORS标头,说:

access-control-allow-credentials: true
access-control-allow-origin: your-app-domain.here

两个陷阱:

  • 在你的超级电话中遗忘.withCredentials()。这不仅适用于cookie,也适用于身份验证。
  • 服务器返回*而不是您的域,但不允许与身份验证结合使用。