From 0f623486ce059e9707445adc2b2d8dffa29ce6ee Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Thu, 8 Sep 2022 22:08:06 +0200 Subject: [PATCH] Created the Token model --- models/Token.ts | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 models/Token.ts diff --git a/models/Token.ts b/models/Token.ts new file mode 100644 index 0000000..56b6745 --- /dev/null +++ b/models/Token.ts @@ -0,0 +1,40 @@ +import mongoose, {Schema} from 'mongoose'; +import * as crypto from "crypto"; + +export enum TokenType { + API, SESSION +} + +export interface IToken { + token: string + clientId: number + type: TokenType + userAgent?: string + created: Date +} + +const TokenSchema = new Schema({ + token: { + type: String, + default: () => crypto.randomBytes(48).toString('hex') + }, + clientId: { + type: Number, + required: true + }, + type: { + type: Number, + enum: TokenType, + default: TokenType.SESSION + }, + userAgent: { + type: String, + required: false + }, + created: { + type: Date, + default: Date.now + } +}); + +export const Token = mongoose.model('tokens', TokenSchema); \ No newline at end of file