From e27ee3364e1a20a431ba3264d1995669b34db9f8 Mon Sep 17 00:00:00 2001
From: Gustavo Soviersovski <gustavo.as1997@hotmail.com>
Date: Tue, 26 Sep 2017 13:18:39 -0300
Subject: [PATCH] Attempting expire token

---
 src/libs/models/resetToken.js |  8 +++++---
 src/libs/routes/resetToken.js | 10 ++++++++++
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/libs/models/resetToken.js b/src/libs/models/resetToken.js
index 8ea994b8..edbb5174 100644
--- a/src/libs/models/resetToken.js
+++ b/src/libs/models/resetToken.js
@@ -25,9 +25,7 @@ let ResetToken = new Schema({
         required: true,
         default: Date.now
     }
-}, {timestamps: true});
-
-ResetToken.index({createdAt: 1},{expireAfterSeconds: 86400}); //Expire After a Day
+});
 
 ResetToken.methods.createResetToken = function (done) {
     let resetToken = this;
@@ -40,5 +38,9 @@ ResetToken.methods.createResetToken = function (done) {
         return done(null, token);
     })
 }
+Token.methods.hasExpired = function () {
+    var now = new Date();
+    return (now - createdAt) > 10/*86400*/; //Token is a day old
+};
 
 module.exports = mongoose.model('ResetToken', ResetToken);
diff --git a/src/libs/routes/resetToken.js b/src/libs/routes/resetToken.js
index db70c4d0..ef0029c1 100644
--- a/src/libs/routes/resetToken.js
+++ b/src/libs/routes/resetToken.js
@@ -24,6 +24,16 @@ resetTokenApp.get('/:token', (req, res, next) => {
             res.statusCode = 404;
             return next({msg: 'Token not found', status:404});
         }
+        if (rToken.hasExpired()) {
+            res.statusCode = 410;
+            ResetToken.remove({token: token}, (err) => {
+                if(err) {
+                    log.error(err);
+                    next(err);
+                }
+            })
+            return next({msg: 'Token expired', status: 410});
+        }
         User.findById(rToken.userId, (err, user) => {
             if(err) {
                 log.error(err);
-- 
GitLab