我有两个API。当我从Atom点击第一个API时,我在会话中设置一个成功的参数。但是当我点击第二个API并尝试通过req.session获取会话时,它会创建一个新会话,而不是提供前一个会话。请将第一个API中设置的会话和参数i添加到第二个API中。
下面是我设置会话参数的第一个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 {"cookie":{"originalMaxAge":180000,"expires":"2017-02-28T05:03:25.304Z","httpOnly":true,"path":"/"},"message":"my message"}
下面是我尝试检索会话的第二个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:',
}
你可以看到我设置了3分钟的cookie时间。在我之间我打了第二个API。有人发现任何错误吗?
答案 0 :(得分:0)
第二个请求必须发送第一个请求(在Cookie
标头中)设置的cookie,以便检索会话。
默认情况下,作为客户端的浏览器会为域发送cookie集。需要指定其他客户端,例如cURL
。如果您特别想使用Atom,请检查它是否/如何支持发送cookie。
会话是包含用户信息的服务器端文件,而Cookie是包含用户信息的客户端文件。会话具有唯一标识符,可将其映射到特定用户。该标识符可以在URL中传递或保存到会话cookie中。
大多数现代网站使用第二种方法,将标识符保存在Cookie中,而不是将其传递到URL中(这会带来安全风险)。你可能在不知情的情况下使用这种方法