diff --git a/src/libs/models/resetToken.js b/src/libs/models/resetToken.js index 8ea994b87dd17c77f17886ef7d4798582425ee60..edbb51741d540c6b0a23e1e60fcb427995bf265a 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 db70c4d0452b2c93b8940d14d6a6f69d61dd5211..ef0029c19d0ce098a5bb7a4a19bc17034381f48e 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);