diff options
author | 2020-11-26 22:20:54 +0100 | |
---|---|---|
committer | 2020-11-26 22:20:54 +0100 | |
commit | f2fcc41cb17ece1fc5acf57809c5e3d61c236133 (patch) | |
tree | a103a0dd371c5f7fd5d7e3105fef0730c8594827 /server/models/Session.js | |
parent | 627239499c7c9fb5e7af68b2e79e01d0523f5d8f (diff) | |
download | website_creator-f2fcc41cb17ece1fc5acf57809c5e3d61c236133.tar.gz website_creator-f2fcc41cb17ece1fc5acf57809c5e3d61c236133.tar.bz2 website_creator-f2fcc41cb17ece1fc5acf57809c5e3d61c236133.zip |
completed jwt token login with refresh token, reduced db calls
Diffstat (limited to 'server/models/Session.js')
-rw-r--r-- | server/models/Session.js | 23 |
1 files changed, 17 insertions, 6 deletions
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); |