get-express-starter
Version:
Get production ready express boilerplate with a single command
41 lines (37 loc) • 816 B
text/typescript
import { tokenTypes } from '@/config/tokens';
import type { IToken } from '@/types';
import mongoose from 'mongoose';
import toJSON from './plugins/toJSON';
const tokenSchema = new mongoose.Schema(
{
token: {
type: String,
required: true,
index: true,
},
user: {
type: mongoose.SchemaTypes.ObjectId,
ref: 'user',
required: true,
},
type: {
type: String,
enum: [tokenTypes.REFRESH, tokenTypes.RESET_PASSWORD, tokenTypes.VERIFY_EMAIL],
required: true,
},
expires: {
type: Date,
required: true,
},
blacklisted: {
type: Boolean,
default: false,
},
},
{
timestamps: true,
},
);
tokenSchema.plugin(toJSON);
const Token = mongoose.model<IToken>('Token', tokenSchema);
export default Token;