mirror of
https://github.com/OpenSquawk/OpenSquawk
synced 2026-05-13 18:25:56 +08:00
22 lines
829 B
TypeScript
22 lines
829 B
TypeScript
import mongoose from 'mongoose'
|
|
|
|
export interface PasswordResetTokenDocument extends mongoose.Document {
|
|
user: mongoose.Types.ObjectId
|
|
tokenHash: string
|
|
expiresAt: Date
|
|
createdAt: Date
|
|
usedAt?: Date
|
|
}
|
|
|
|
const passwordResetTokenSchema = new mongoose.Schema<PasswordResetTokenDocument>({
|
|
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true, index: true },
|
|
tokenHash: { type: String, required: true, unique: true },
|
|
expiresAt: { type: Date, required: true, index: { expires: 0 } },
|
|
createdAt: { type: Date, default: () => new Date() },
|
|
usedAt: { type: Date },
|
|
})
|
|
|
|
export const PasswordResetToken =
|
|
(mongoose.models.PasswordResetToken as mongoose.Model<PasswordResetTokenDocument> | undefined) ||
|
|
mongoose.model<PasswordResetTokenDocument>('PasswordResetToken', passwordResetTokenSchema)
|