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/User.js | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) (limited to 'server/models/User.js') diff --git a/server/models/User.js b/server/models/User.js index ef3d94e..02cfe25 100644 --- a/server/models/User.js +++ b/server/models/User.js @@ -1,8 +1,5 @@ const mongoose = require("mongoose"); const bcrypt = require('bcryptjs'); -const randtoken = require('rand-token'); -const jwt = require('jsonwebtoken'); -const Session = require('./Session'); const userSchema = new mongoose.Schema({ email: { @@ -25,31 +22,13 @@ const userSchema = new mongoose.Schema({ min: 4, max: 1024, }, -}); - -userSchema.methods.generateJwtToken = async function (currentRefToken) { - const refreshToken = currentRefToken ? currentRefToken : randtoken.uid(256); - - if (!currentRefToken) { - const session = new Session({ user: this, refreshToken }); - await session.save(); + language: { + type: String, + required: true, + min: 2, + max: 2, } - - return jwt.sign( - { _id: this._id.toString(), refreshToken }, - process.env.JWT_SECRET, - { expiresIn: parseInt(process.env.JWT_TOKEN_MAX_AGE) } - ); -} - -userSchema.methods.endSession = async function (ref) { - this.sessions = this.sessions.filter((session) => { - return session.ref !== ref; - }); - - await this.save(); - return null; -} +}); userSchema.statics.findByCredentials = async (email, password) => { const user = await User.findOne({ email }); -- cgit v1.2.3