summaryrefslogtreecommitdiffstats
path: root/server/models/Session.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-26 22:20:54 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-26 22:20:54 +0100
commitf2fcc41cb17ece1fc5acf57809c5e3d61c236133 (patch)
treea103a0dd371c5f7fd5d7e3105fef0730c8594827 /server/models/Session.js
parent627239499c7c9fb5e7af68b2e79e01d0523f5d8f (diff)
downloadwebsite_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.js23
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);