Я использую node / express.js с cookie-сеансом в своем приложении и пытаюсь понять, как правильно создать уникальный идентификатор для каждого сеанса.
В настоящее время, когда пользователь входит в систему, в его браузере сохраняется файл cookie со значением, например: session: ABC123. Если пользователь выходит из системы, cookie удаляется. Когда пользователь снова входит в систему, тот же файл cookie и значение сохраняются в браузере session: ABC123.
В идеале я хотел бы рандомизировать значение сеанса, чтобы я мог подсчитать количество уникальных сеансов, созданных этим пользователем. Мне интересно, есть ли способ рандомизировать значение сеанса cookie при каждом входе в систему - или я должен создавать отдельный файл cookie, который хранит случайное значение для этой цели?
Спасибо!





Создание уникального идентификатора? Похоже, это работа для универсальных уникальных идентификаторов - UUID! Есть прекрасный небольшой пакет Node.js под названием uuid, который может обрабатывать логику, стоящую за ними, за вас. Вот как вы можете использовать его для установки уникального файла cookie в приложении ExpressJS:
const express = require('express');
const uuid = require('uuid/v4');
const app = express();
app.get('/', (req, res) => {
if (req.cookie.id) {
return res.end(`Welcome back, ${req.cookie.id}!`);
}
const id = uuid();
res.cookie('id', id, { httpOnly: true });
res.end(`Welcome, ${id}!`);
});
app.listen(3000);
Ваше точное использование, вероятно, будет немного другим, поскольку вам нужно будет только сгенерировать новый UUID, когда кто-то войдет в систему, но принципы те же.
P.S. - Рассматривали ли вы пакет express-session для идентификации отдельных пользователей вашего приложения?