【发布时间】:2015-12-28 19:04:23
【问题描述】:
我有这个作为后端 OAuth 服务器前端的 Node API。在 SAML OAuth 舞蹈结束时,我在浏览器 cookie 中设置了不记名令牌。
// need cookieParser middleware before we can do anything with cookies
app.use(express.cookieParser());
// set a cookie
app.use(function (req, res, next) {
// check if client sent cookie
var cookie = req.cookies.cookieName;
if (cookie === undefined)
{
// no: set a new cookie
var randomNumber=Math.random().toString();
randomNumber=randomNumber.substring(2,randomNumber.length);
res.cookie('cookieName',randomNumber, { maxAge: 900000, httpOnly: true });
console.log('cookie created successfully');
}
else
{
// yes, cookie was already present
console.log('cookie exists', cookie);
}
next();
});
app.use(express.static(__dirname + '/public'));
现在我被介绍给一个花哨的 NPM,它做几乎相同的事情 https://github.com/mozilla/node-client-sessions
当我几乎倾向于使用这个 NPM 时,我遇到了 express-session。 https://github.com/expressjs/session - 这是用于服务器端会话。但这也设置了一个 cookie
var express = require('express');
var session = require("express-session");
var app = express();
app.use(session({
resave: true,
saveUninitialized: true,
secret: 'ABC123',
cookie: {
maxAge: 60000
}
}));
app.get("/test", function(req, res) {
req.session.user_agent = req.headers['user-agent'];
res.send("session set");
});
如果我只需要在浏览器 cookie 中为后续 API 调用设置不记名令牌,我应该选择哪个选项?
【问题讨论】:
标签: node.js session cookies express