Управление сессиями может быть реализовано через базу данных (MySQL, MongoDB, Redis и т. Д.) Или через локальный кеш.
Основная логика сеансов - это объект с данными.
Таким образом, вы можете предоставить пользователю при первом взаимодействии скакой-то случайный идентификатор, например uuid
.
, и сохраните его в каком-нибудь модуле, который выглядит следующим образом:
class OwnSession(){
constructor(){
this.sessions = {};
}
getUser(sessionId){
return this.sessions[sessionId];
}
setUser(sessionId, userData){
if(this.sessions[sessionId]){
Object.assign(this.sessions[sessionId], userData);
return;
}
this.sessions[sessionId] = userData;
}
}
// We export here new OwnSession() to keep singleton across your project.
module.exports = new OwnSession();
И затем в любом модуле вам требуется OwnSession
и вызов метода.