首页 > 解决方案 > 使用会话 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 检索数据?

标签: node.jsexpress

解决方案


推荐阅读