Skip to content
Snippets Groups Projects
Commit d8f7962a authored by ems19's avatar ems19
Browse files

[ADD] ResetToken Postgres methods

parent bc9ed9d8
No related branches found
No related tags found
4 merge requests!377prd_version of simcaq,!373merge dev -> homologa,!370Dev migration,!369Postgres migration
*downloads.js
*resetToken.js
*resetToken.js (V)
*pqr.js
*simulation.js
*user.js (V)
*verifyToken.js
*verifyToken.js (V)
......@@ -38,10 +38,10 @@ passport.use(new BearerStrategy(async (accessToken, done) => {
}
if (Math.round((Date.now() - token.created) / 1000) > config.security.tokenLife) {
AccessToken.destroy({ token: accessToken }).then((err) => {
AccessToken.destroy({where:{ token: accessToken} }).catch(function (err) {
if (err) {
console.log("ERRO remove Token")
return done(err);
log.error(err);
return next({ err });
}
});
......
......@@ -27,7 +27,7 @@ var ResetToken = db.define("ResetToken",{
{timestamps: false}
);
ResetToken.hasExpired = function () {
ResetToken.prototype.hasExpired = function () {
var now = new Date();
return (now - this.createdAt) > 86400; //Expire if token is 1 day old
};
......
......@@ -10,72 +10,72 @@ const ResetToken = require(`${libs}/models/resetToken`);
const User = require(`${libs}/models/user`);
resetTokenApp.get('/:token', (req, res, next) => {
resetTokenApp.get('/:token', async (req, res, next) => {
let token = req.params.token;
ResetToken.findOne({token: token}, (err, rToken) => {
if(err) {
let rToken = await ResetToken.findOne({where:{ token: token} }).catch(function (err) {
if (err) {
log.error(err);
return next(err);
return next({ err });
}
if(!rToken) {
// TODO: generate new reset token
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.findByPk(rToken.userId, (err, user) => {
if(err) {
})
if (!rToken) {
res.statusCode = 404;
return next({ msg: 'Token not found', status: 404 });
}
if (rToken.hasExpired()) {
res.statusCode = 410;
await ResetToken.remove({where:{ token: token}}).catch(function (err) {
if (err) {
log.error(err);
next(err);
return next({ err });
}
let u = user.toObject();
delete u.salt;
delete u.hashedPassword;
res.json({user: u});
});
});
})
return next({ msg: 'Token expired', status: 410 });
}
let _user = await User.findByPk(rToken.user_id).catch(function (err) {
if (err) {
log.error(err);
return next({ err });
}
})
let u = _user.toJSON();
delete u.salt;
delete u.hashed_password;
res.json({ user: u });
});
resetTokenApp.post('/:token', (req, res, next) => {
resetTokenApp.post('/:token', async (req, res, next) => {
let token = req.params.token;
ResetToken.findOne({token: token}, (err, rToken) => {
if(err) {
let rToken = await ResetToken.findOne({where:{ token: token}}).catch(function (err) {
if (err) {
log.error(err);
return next(err);
return next({ err });
}
if(!rToken) {
res.statusCode = 404;
return next({msg: 'Token not found', status:404});
})
if (!rToken) {
res.statusCode = 404;
return next({ msg: 'Token not found', status: 404 });
}
let _user = await User.findByPk(rToken.user_id).catch(function (err) {
if (err) {
log.error(err);
return next({ err });
}
User.findByPk(rToken.userId, (err, user) => {
if(err) {
log.error(err);
next(err);
}
user.password = req.body.password;
user.save((err) => {
if(err) {
log.error(err);
next(err);
}
ResetToken.remove({token: token}, (err) => {
if(err) {
log.error(err);
next(err);
}
})
res.json({msg: "Senha alterada com sucesso"});
})
});
});
})
})
await _user.update({password:req.body.password});
_user.save().catch(function (err) {
if (err) {
log.error(err);
return next({ err });
}
})
await ResetToken.destroy({where:{token: token} }).catch(function (err) {
if (err) {
log.error(err);
return next({ err });
}
})
res.json({ msg: "Senha alterada com sucesso" });
});
module.exports = resetTokenApp;
......@@ -94,7 +94,7 @@ userApp.get('/', passport.authenticate('bearer', {session: false}), (req, res, n
*/
userApp.get('/me', passport.authenticate('bearer', { session: false }), (req, res, next) => {
let u = req.user;
let u = req.user.toJSON();
delete u.hashed_password;
delete u.salt;
req.result = u;
......@@ -107,7 +107,7 @@ userApp.get('/:id', (req, res, next) => {
res.statusCode = 404;
res.json({ msg: "O usuário não está cadastrado" });
} else {
let u = user;
let u = user.toJSON();
delete u.hashed_password;
delete u.salt;
req.result = u;
......@@ -256,8 +256,8 @@ userApp.put('/:id', passport.authenticate('bearer', { session: false }), async (
log.error(err);
return next({ message: 'Erro ao atualizar usuário' });
}})
let u = user;
delete u.hashedPassword;
let u = user.toJSON();
delete u.hashed_password;
delete u.salt;
delete u.password;
res.json({ user: u });
......
......@@ -45,7 +45,7 @@ verifyTokenApp.get('/:token', async (req, res, next) => {
next(err);
}
});
let u = _user;
let u = _user.toJSON();
delete u['salt'];
delete u['hashed_password'];
res.json({ msg: 'User verified', u });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment