node.js - 无法在sailsjs中获得redis session

标签 node.js rest session redis sails.js

我有两个 API。当我从 Atom 中点击第一个 API 时,我在 session 中设置了一个成功的参数。但是当我点击第二个 API 并尝试通过 req.session 获取 session 时,它会创建一个新 session 而不是提供上一个 session 。如何将我在第一个 API 中设置的 session 和参数获取到第二个 API。

下面是我设置 session 参数的第一个 API 代码。

function firstAPI(req, res) {////This is POST API
    session = req.session;
    ////Doing something with req
    session.message="my message";
    sails.log.info("session " + JSON.stringify(session));
    res.send(""session is set);
}

在终端我得到以下 session

session {"cookie":{"originalMaxAge":180000,"expires":"2017-02-28T05:03:25.304Z","httpOnly":true,"path":"/"},"message":"my message"}

下面是我尝试检索 session 的第二个 API 代码。

function secondAPI(req, res) {
sails.log.info("session= " + JSON.stringify(req.session));
}

第二个 API 的日志是

session= {"cookie":{"originalMaxAge":180000,"expires":"2017-02-28T05:04:18.623Z","httpOnly":true,"path":"/"}}

以下是我的 config/session.js 文件

module.exports.session = {

secret: '123abc',

cookie: {
    maxAge: 3 * 60 * 1000,
},


adapter: 'redis',

host: 'localhost',
port: 6379,
db: 0,
prefix: 'sess:',
}

您可以看到我已将 cookie 时间设置为 3 分钟。在这之间我点击了第二个 API。有人发现这有什么错误吗?

最佳答案

第二个请求必须发送第一个请求设置的cookie(在Cookie header 中)才能检索 session 。

默认情况下,作为客户端的浏览器会发送为域设置的 cookie。 cURL 等其他客户端需要指定。如果您特别想使用 Atom,请检查它是否/如何支持发送 cookie。

Cookies & sessions :

Sessions are server-side files that contain user information, while Cookies are client-side files that contain user information. Sessions have a unique identifier that maps them to specific users. This identifier can be passed in the URL or saved into a session cookie.

Most modern sites use the second approach, saving the identifier in a Cookie instead of passing it in a URL (which poses a security risk). You are probably using this approach without knowing it

关于node.js - 无法在sailsjs中获得redis session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42500987/

相关文章:

java - Servlet 过滤器重定向,url 未更改

javascript - 跨多个选项卡的亲子导航

javascript - Node js请求实体太大,带有multer上传

rest - 为什么对 PUT 请求的响应不能提供 ETag?

node.js - 如何将数据从 postman 发布到Output.json文件?

.net - 使用 HttpClient,如何将 XDocument 直接保存到请求流?

java - 如何使用 java 在 REST Web 服务中复制 zip 和其他文件

node.js - redis 保存session等数据

javascript - 如何在单元测试期间禁用 Morgan(请求记录器)?

javascript - 在MongooseJs中查找特定类型的平均值