[英]Node.js request-promise jar cookies not working
我正在尝试进行两个API调用。 第一个登录,最后一个执行授权操作。 即使登录成功,对授权操作的调用也会产生401未经授权的错误。 我认为这是因为我收到的Cookie没有在上次通话中发回。 我已经看到了该cookie 保存在jar
虽然。 我尝试过邮递员,效果很好。
这是我的代码:
const request = require('request-promise');
const jar = request.jar();
const loginOptions = () => ({
method: 'POST',
url: 'https://www.some-api.com/login',
jar,
headers:
{
'content-type': 'application/json'
},
body: {
username: "username",
password: "password"
},
json: true
});
const authorizedOperationOptions = (param) => ({
method: 'GET',
url: 'https://www.some-api.com/authorized-operation?param=' + param
timeout: 1000000,
jar,
headers:
{
'content-type': 'application/json'
},
json: true
});
export default async (date) => {
await request(loginOptions());
await request(authorizedOperationOptions("value"));
};
我想知道自己在做错什么,但是我也将接受另一种方法来使用另一个库以及一个有效的示例代码。
请注意,该服务旨在仅支持Web浏览器,因此也许与该问题有关。
对于不熟悉await
,它可以确保代码阻塞直到实现诺言为止,并在拒绝时抛出。
由于该服务被定义为仅支持Web浏览器,因此我不得不模拟一个Web浏览器。 我通过添加User-Agent标头来管理它:
headers:
{
'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6'
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.