45 lines
851 B
JavaScript
45 lines
851 B
JavaScript
const mongoose = require('mongoose');
|
|
const { toJSON } = require('./plugins');
|
|
const { tokenTypes } = require('../config/tokens');
|
|
|
|
const tokenSchema = 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,
|
|
}
|
|
);
|
|
|
|
// add plugin that converts mongoose to json
|
|
tokenSchema.plugin(toJSON);
|
|
|
|
/**
|
|
* @typedef Token
|
|
*/
|
|
const Token = mongoose.model('Token', tokenSchema);
|
|
|
|
module.exports = Token;
|