kaori 4 лет назад
Родитель
Сommit
117de2cedf
2 измененных файлов с 20 добавлено и 3 удалено
  1. 1 1
      src/server/models/password-reset-order.js
  2. 19 2
      src/server/routes/forgot-password.js

+ 1 - 1
src/server/models/password-reset-order.js

@@ -9,7 +9,7 @@ const schema = new mongoose.Schema({
   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 },
+  expiredAt: { type: Date, default: Date.now, required: true },
 });
 schema.plugin(uniqueValidator);
 

+ 19 - 2
src/server/routes/forgot-password.js

@@ -1,5 +1,8 @@
 const mongoose = require('mongoose');
 
+const logger = require('@alias/logger')('growi:routes:forgot-password');
+const ApiResponse = require('../util/apiResponse');
+
 module.exports = function(crowi, app) {
   const PasswordResetOrder = mongoose.model('PasswordResetOrder');
   const { /* appService, */ mailService } = crowi;
@@ -16,7 +19,7 @@ module.exports = function(crowi, app) {
   async function sendPasswordResetEmail() {
 
     return mailService.send({
-      to: 'hoge@gmail.com',
+      to: 'hoge@example.com',
       subject: 'forgotPasswordMailTest',
       // TODO: apply i18n by GW-6833
       template: path.join(crowi.localeDir, 'en_US/notifications/passwordReset.txt'),
@@ -30,7 +33,21 @@ module.exports = function(crowi, app) {
   }
 
   api.post = async function(req, res) {
-    const oneTimeToken = await PasswordResetOrder.generateUniqueOneTimeToken();
+    const token = await PasswordResetOrder.generateUniqueOneTimeToken();
+    const email = 'hoge@example.com';
+    console.log('oneTimeToken', token);
+
+    try {
+      await PasswordResetOrder.create({ token, email });
+      res.send(ApiResponse.success(token));
+    }
+    catch (err) {
+      const msg = 'Error occurred during password reset request procedure';
+      logger.error(err);
+      // return res.apiv3Err(new ErrorV3(msg, 'creating-slack-integration-settings-procedure-failed'), 500);
+      return res.json(ApiResponse.error(msg));
+    }
+
     await sendPasswordResetEmail();
     return;
   };