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