gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:29:00 24 4
gpt4 key购买 nike

我有两个 API。当我从 Atom 访问第一个 API 时,我在 session 中设置了一个成功的参数。但是当我点击第二个 API 并尝试通过 req.session 获取 session 时,它会创建一个新 session 而不是提供先前的 session 。 Ho 将我在第一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com