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

标签 node.js rest session redis sails.js

我有两个 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/

相关文章:

node.js - 在 jade 中,传递给 `mixin` 的参数具有未计算的变量

node.js - 带有base64摘要算法的nodejs md5错误结果

Node.js:如何设置 npm start?

java - 如何在 Restful API 正文响应中将 Java 'java.time.Instant' 属性作为 json 值返回?

asp.net - 持久化用户 cookie

javascript - 使用异步/等待延迟强制请求之间的时间

java - 从 CSR 文件获取 SSL 证书

json - 如何将服务器数据传递/解析到 WatchKit 表行中的对象?

c# - 在 View MVC 中读取 session 值

c# - 应用程序设计 : NH-session management, 通用存储库,ASP.NET MVC