Upgraded JWT invalidation/session logic to separate TokenVersion model.

This commit is contained in:
Tuan Dang
2023-06-06 16:36:52 +01:00
parent b9dad5c3f0
commit 846f5c6680
14 changed files with 170 additions and 64 deletions
+12 -2
View File
@@ -2,9 +2,11 @@ import { Schema, model, Types, Document } from 'mongoose';
export interface ITokenVersion extends Document {
user: Types.ObjectId;
name: string;
ip: string;
userAgent: string;
refreshVersion: number;
accessVersion: number;
lastUsed: Date;
}
const tokenVersionSchema = new Schema<ITokenVersion>(
@@ -14,7 +16,11 @@ const tokenVersionSchema = new Schema<ITokenVersion>(
ref: 'User',
required: true
},
name: {
ip: {
type: String,
required: true
},
userAgent: {
type: String,
required: true
},
@@ -25,6 +31,10 @@ const tokenVersionSchema = new Schema<ITokenVersion>(
accessVersion: {
type: Number,
required: true
},
lastUsed: {
type: Date,
required: true
}
},
{