فهرست منبع

Merge pull request #4036 from weseek/imprv/gw6841-create-model-of-one-time-password

created one-time-url model
Kaori Tokashiki 4 سال پیش
والد
کامیت
ad476b036c
1فایلهای تغییر یافته به همراه32 افزوده شده و 0 حذف شده
  1. 32 0
      src/server/models/password-reset-order.js

+ 32 - 0
src/server/models/password-reset-order.js

@@ -0,0 +1,32 @@
+const mongoose = require('mongoose');
+const uniqueValidator = require('mongoose-unique-validator');
+
+const ObjectId = mongoose.Schema.Types.ObjectId;
+
+const schema = new mongoose.Schema({
+  token: { type: String, required: true, unique: true },
+  email: { type: String, required: true },
+  relatedUser: { type: ObjectId, ref: 'User' },
+  createdAt: { type: Date, default: Date.now, required: true },
+  expiredAt: { type: Date, default: Date.now + 600000, required: true },
+});
+schema.plugin(uniqueValidator);
+
+class PasswordResetOrder {
+
+  static generateOneTimeToken() {
+    // TODO: generate unique token by GW-6802
+  }
+
+  static isExpired() {
+    return this.expiredAt.getTime() < new Date().getTime();
+  }
+
+}
+
+module.exports = function(crowi) {
+  PasswordResetOrder.crowi = crowi;
+  schema.loadClass(PasswordResetOrder);
+  const model = mongoose.model('PasswordResetOrder', schema);
+  return model;
+};