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