Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions auth/auth.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,10 +163,13 @@ export async function setValidationTokenAndNotify(username) {
try {
const usuario = await AuthUsers.findOne({ usuario: username });
if (usuario && usuario.tipo === 'temporal' && usuario.email) {
usuario.validationToken = new mongoose.Types.ObjectId().toHexString();
usuario.audit(userScheduler);
await usuario.save();

if (!usuario.validationToken || usuario.validationTokenExpiration < new Date()) {
// Si no tiene un token de validación o esta vencido, se genera uno nuevo
usuario.validationToken = new mongoose.Types.ObjectId().toHexString();
usuario.validationTokenExpiration = new Date(Date.now() + 72 * 60 * 60 * 1000); // Expira en 72 horas
usuario.audit(userScheduler);
await usuario.save();
}
const extras: any = {
titulo: 'Recuperación de contraseña',
usuario,
Expand Down Expand Up @@ -268,8 +271,9 @@ export async function validateOtp(username, otpCode): Promise<boolean> {
export async function reset(token, password) {
try {
const usuario = await AuthUsers.findOne({ validationToken: token });
if (usuario) {
if (usuario && usuario.validationTokenExpiration > new Date()) {
usuario.validationToken = null;
usuario.validationTokenExpiration = null;
usuario.password = sha1Hash(password);
usuario.audit(userScheduler);
await usuario.save();
Expand Down
1 change: 1 addition & 0 deletions auth/schemas/authUsers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export interface IAuthUsers {
lastLogin: Date;
tipo?: String;
validationToken?: String;
validationTokenExpiration?: Date;
email?: String;
configuracion?: { [key: string]: any };
disclaimers?: {
Expand Down
8 changes: 5 additions & 3 deletions modules/mobileApp/auth_routes/autenticacionApp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,17 +89,19 @@ router.post('/olvide-password', (req, res, next) => {
return res.status(422).send({ error: 'Se debe ingresar una dirección de e-Mail' });
}
const email = req.body.email.toLowerCase();
const diaHoy = new Date();

return PacienteApp.findOne({ email }, (err, datosUsuario: any) => {
if (err) {
return next(err);
}

if (!datosUsuario) {
if (!datosUsuario || !datosUsuario.activacionApp) {
return res.status(422).send({ error: 'El e-mail ingresado no existe' });
}

if (!datosUsuario.activacionApp) {
return res.status(422).send({ error: 'El e-mail ingresado no existe' });
if (datosUsuario.restablecerPassword?.fechaExpiracion > diaHoy && datosUsuario.restablecerPassword?.codigo) {
return res.status(422).send({ error: 'Ya posee un código de verificación para cambiar su password' });
}

datosUsuario.restablecerPassword.codigo = authController.generarCodigoVerificacion();
Expand Down
2 changes: 1 addition & 1 deletion modules/mobileApp/controller/AuthController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { IPushNotification, sendPushNotification } from './PushClientFCM';

const log = debug('AuthController');

export const expirationOffset = 1000 * 60 * 60 * 24;
export const expirationOffset = 1000 * 60 * 60 * 72; // 72 horas

export function verificarCodigo(codigoIngresado, codigo) {
if (codigoIngresado === codigo) {
Expand Down
2 changes: 1 addition & 1 deletion templates/emails/reset-password.html
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@
Hola {{username}}, has solicitado el cambio de contraseña de la cuenta de ANDES App.

<br />
El código para el cambio de contraseña estará disponible sólo por 24 horas.
El código para el cambio de contraseña estará disponible sólo por 72 horas.

<br><br>
<!-- Button : Begin -->
Expand Down
2 changes: 1 addition & 1 deletion utils/roboSender/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export function sendEmail(data: IEmail, options: any = {}) {

createdAt: moment().toDate(),
updatedAt: moment().toDate(),
expiredAt: moment().add(1, 'd').toDate(),
expiredAt: moment().add(3, 'd').toDate(),
scheduledAt: options.scheduledAt ? options.scheduledAt : moment().toDate(),
tries: 0,
});
Expand Down