From f2fcc41cb17ece1fc5acf57809c5e3d61c236133 Mon Sep 17 00:00:00 2001 From: Piotr Russ Date: Thu, 26 Nov 2020 22:20:54 +0100 Subject: completed jwt token login with refresh token, reduced db calls --- server/models/Session.js | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'server/models/Session.js') diff --git a/server/models/Session.js b/server/models/Session.js index c410bb9..06a4369 100644 --- a/server/models/Session.js +++ b/server/models/Session.js @@ -1,20 +1,31 @@ const mongoose = require("mongoose"); +const jwt = require('jsonwebtoken'); const sessionSchema = new mongoose.Schema({ - user: { + userId: { type : mongoose.Schema.Types.ObjectId, ref : 'User' }, - refreshToken: { - type: String, - required: true - }, lastAccess: { type: Date, default: Date.now(), - index: { expires: 90 } + index: { expires: parseInt(process.env.DB_SESSION_MAX_AGE) } } }); +sessionSchema.methods.setAccessDate = function (user) { + this.lastAccess = Date.now(); + console.log('refreshing time in db') + this.save(); +} + +sessionSchema.methods.generateJwtToken = function (user) { + return jwt.sign( + { sessionId: this._id.toString(), user: JSON.stringify(user) }, + process.env.JWT_SECRET, + { expiresIn: parseInt(process.env.JWT_TOKEN_MAX_AGE) } + ); +}; + module.exports = mongoose.model('Session', sessionSchema); -- cgit v1.2.3