У меня есть API-интерфейс Node, который работает на сервере OAuth. В конце танца SAML OAuth я установил Toker Token в cookie браузера.Node-Client-session vs express-session
// 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'));
Теперь я был введен в причудливом НПМ, который делает почти то же самое https://github.com/mozilla/node-client-sessions
В то время как я был почти склонен об использовании этого НПМ, я наткнулся на экспресс-сессии. https://github.com/expressjs/session - это для сеансов на стороне сервера. Но это также устанавливает печенье
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");
});
Если моя потребность установить только маркер носителя в браузере куки для последующих вызовов API, какой вариант должен быть мой выбор?
И сессия будет соответствовать автоматически в каждом и каждом последующем вызове API? ПОЛУЧИТЬ ПОСТ? – lonelymo
Да, точно. При входящих запросах экспресс-сессия ищет файл cookie 'connect.sid', а затем присоединяет сеанс к' req.session'. Обратите внимание, как 'session' определяется внутри' app.use (...) '. Сессия выступает в качестве промежуточного программного обеспечения. –