aloux-iam 0.0.82 → 0.0.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/services/auth.js +8 -4
- package/package.json +1 -1
package/lib/services/auth.js
CHANGED
|
@@ -78,10 +78,14 @@ self.login = async (body, res) => {
|
|
|
78
78
|
} else {
|
|
79
79
|
const { email, pwd } = body
|
|
80
80
|
const userLogin = await User.findOne({ email: email })
|
|
81
|
-
|
|
81
|
+
|
|
82
82
|
if (!userLogin) {
|
|
83
83
|
throw { code: 401, title: 'Credenciales incorrectas', detail: '', suggestion: 'Verifica que el Usuario y Contraseña sean correctos', error: new Error() }
|
|
84
84
|
}
|
|
85
|
+
|
|
86
|
+
if (userLogin.tokens.length + 1 > process.env.MAX_TOKENS) {
|
|
87
|
+
throw { code: 401, title: 'Límite de sesiones alcanzado', detail: 'Has alcanzado el número máximo de sesiones permitidas para esta cuenta.', suggestion: 'Por favor, cierra una de las sesiones activas en dispositivos que no estés usando para iniciar una nueva sesión.', error: new Error() }
|
|
88
|
+
}
|
|
85
89
|
|
|
86
90
|
if (userLogin.status !== 'Activo') {
|
|
87
91
|
throw { code: 401, title: 'Usuario inactivo', detail: 'Usuario desactivado por el administrador.', suggestion: 'Pongase en contacto con el área administrativa.', error: new Error(), status: userLogin.status }
|
|
@@ -351,7 +355,7 @@ self.sendcodemailLogin = async (email, code, ban) => {
|
|
|
351
355
|
|
|
352
356
|
self.recoverpassword = async (req, res) => {
|
|
353
357
|
|
|
354
|
-
const user = await User.findOne({ email: req.body.email })
|
|
358
|
+
const user = await User.findOne({ email: req.body.email , status: {$ne : "Inactivo" } })
|
|
355
359
|
if (!user) {
|
|
356
360
|
throw { code: 409, title: 'Usuario no encontrado.', detail: '', suggestion: 'Verifica que el Usuario exista', error: new Error() }
|
|
357
361
|
}
|
|
@@ -363,7 +367,7 @@ self.recoverpassword = async (req, res) => {
|
|
|
363
367
|
let time = new Date()
|
|
364
368
|
const sumarMinutos = new Date(time.getTime() + 5 * 60000)
|
|
365
369
|
user.validateKey.limitCodeTime = (new Date(sumarMinutos)).getTime()
|
|
366
|
-
|
|
370
|
+
|
|
367
371
|
await user.save()
|
|
368
372
|
|
|
369
373
|
return true
|
|
@@ -435,7 +439,7 @@ self.resetPassword = async (req, res) => {
|
|
|
435
439
|
usuario.validateKey.limitCodeTime = null
|
|
436
440
|
usuario.lastUpdate = new Date().getTime()
|
|
437
441
|
usuario.tokens = []
|
|
438
|
-
|
|
442
|
+
usuario.status = "Activo"
|
|
439
443
|
await usuario.save()
|
|
440
444
|
|
|
441
445
|
const token = await usuario.generateAuthToken()
|