33 lines
627 B
JavaScript
33 lines
627 B
JavaScript
const mongoose = require('mongoose');
|
|
|
|
const resetTokenSchema = new mongoose.Schema({
|
|
adminId: {
|
|
type: mongoose.Schema.Types.ObjectId,
|
|
ref: 'Admin',
|
|
required: true,
|
|
index: true
|
|
},
|
|
token: {
|
|
type: String,
|
|
required: true,
|
|
unique: true,
|
|
index: true
|
|
},
|
|
expiresAt: {
|
|
type: Date,
|
|
required: true,
|
|
index: true
|
|
},
|
|
used: {
|
|
type: Boolean,
|
|
default: false
|
|
}
|
|
}, {
|
|
timestamps: true
|
|
});
|
|
|
|
// Automatically delete expired tokens (TTL index)
|
|
resetTokenSchema.index({ expiresAt: 1 }, { expireAfterSeconds: 0 });
|
|
|
|
module.exports = mongoose.model('ResetToken', resetTokenSchema);
|