Генерация уникального ID сессии с помощью Express Cookie-Session - PullRequest
0 голосов
/ 29 ноября 2018

Я использую node / express.js с cookie-сессиями в своем приложении и пытаюсь понять, как правильно создать уникальный идентификатор для каждой сессии.

В настоящее время, когда пользователь входит в cookie, он хранит в своем браузере значение, например: session: ABC123.Если пользователь выходит из системы, файл cookie удаляется.Когда пользователь снова входит в систему, тот же файл cookie и значение сохраняются в браузере session: ABC123.

В идеале я хотел бы рандомизировать значение сеанса, чтобы я мог подсчитать количество уникальных сеансов, созданных этим пользователем.,Мне интересно, есть ли способ рандомизировать значение cookie-сессии при каждом входе в систему - или я должен создать отдельный cookie-файл, в котором для этой цели хранится случайное значение?

Спасибо!

1 Ответ

0 голосов
/ 29 ноября 2018

Генерация уникального идентификатора?Это звучит как работа для универсально уникальных идентификаторов - 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 только тогда, когда кто-то входит в систему., но принципы те же.

PS - Рассматривали ли вы пакет express-session для идентификации отдельных пользователей вашего приложения?

...