[英]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.