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);