node.js - 使用会话 cookie 登录 Nodejs Rest API
问题描述
我是 node.js 和 express 的新手。我想登录到一个休息 api。该 api 提供了一个登录端点,当我在那里登录时,我得到一个响应,并且在响应的标题中是一个包含多个字段的数组,例如:
[0]: "JSESSIONID=<id>;path=<path>;HttpOnly"
[1]: ...
[2]: "userId=<userid>;Max-Age=1000000000;path=/;Secure;HttpOnly" ...
session-cookie 中间件需要一个 sessionname 和键(是数组中的键吗?这就是存储在下面的 var sessionkeys 中的内容。我不确定我是否以正确的方式使用它。)
我想使用 express 和中间件 cookie-session ( https://github.com/expressjs/cookie-session ):
app.get('/showorders', function(req, res){
request({
uri: "...",
body: postBody,
method: 'POST',
headers: {
'Content-Type': 'application/xml'
}
}, function (error, response, body) {
var sessionkeys = response.headers["set-cookie"];
app.use(cookieSession({
name: "testsession",
keys: sessionkeys
}));
res.send(response);
});
request({
uri: "...",
body: postBody,
method: 'GET',
headers: {
'cookie': req.session
}
}, function (error, response, body) {
res.send(body);
});
});
(我在这个例子中删除了 url 和一些其他数据)
我收到“无用户登录”错误。
第一个(登录)端点给了我一个“成功”,所以第一个请求似乎没问题。但它如何在 node.js 中与会话一起工作?如何创建一个工作会话并使用它从其余 api 检索数据?
解决方案
推荐阅读
- regex - 搜索列表的内容
使用正则表达式 - javascript - 如何在html或javascript中默认按下按钮
- python - OneHotEncoder 错误:无法将字符串转换为浮点数
- java - Android 在手机上编程,但在平板电脑上
- hibernate - 在休眠中一对一映射的父类中保存关系ID
- asp.net - 如何让我的变量更改值?
- ios - nativescript 中平台 ios 的自定义用户代理
- tsql - 当我在 1 个查询中加入 3 个表时,我没有得到任何结果;但是当我将它们拆分为 CTE 时,我可以得到结果吗?
- angularjs - 使用 $location.path 重定向到另一个 url
- javascript - 试图通过 jquery 调用一个新的 aspx 页面