todo al token
This commit is contained in:
parent
ffbbe0d3a8
commit
aa611f09b1
@ -7,15 +7,14 @@ import { AuthService } from './auth.service';
|
|||||||
import { LoginAdminDto } from './dto/input/login-admin.dto';
|
import { LoginAdminDto } from './dto/input/login-admin.dto';
|
||||||
import { LoginOperadorDto } from './dto/input/login-operador.dto';
|
import { LoginOperadorDto } from './dto/input/login-operador.dto';
|
||||||
import { LoginUsuarioDto } from './dto/input/login-usuario.dto';
|
import { LoginUsuarioDto } from './dto/input/login-usuario.dto';
|
||||||
import { AuthOperadorOutputDto } from './dto/output/operador.dto';
|
import { AuthTokenOutputDto } from './dto/output/token.dto';
|
||||||
import { AuthUsuarioOutputDto } from './dto/output/usuario.dto';
|
|
||||||
|
|
||||||
@Controller('auth')
|
@Controller('auth')
|
||||||
@ApiTags('auth')
|
@ApiTags('auth')
|
||||||
export class AuthController {
|
export class AuthController {
|
||||||
constructor(private authService: AuthService) {}
|
constructor(private authService: AuthService) {}
|
||||||
|
|
||||||
@Serealize(AuthOperadorOutputDto)
|
@Serealize(AuthTokenOutputDto)
|
||||||
@Recaptcha()
|
@Recaptcha()
|
||||||
@Post('login-admin')
|
@Post('login-admin')
|
||||||
@ApiOperation({
|
@ApiOperation({
|
||||||
@ -36,7 +35,7 @@ export class AuthController {
|
|||||||
return this.authService.loginAdmin(body.operador, body.password);
|
return this.authService.loginAdmin(body.operador, body.password);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Serealize(AuthOperadorOutputDto)
|
@Serealize(AuthTokenOutputDto)
|
||||||
@Recaptcha()
|
@Recaptcha()
|
||||||
@Post('login-operador')
|
@Post('login-operador')
|
||||||
@ApiOperation({
|
@ApiOperation({
|
||||||
@ -62,7 +61,7 @@ export class AuthController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Serealize(AuthUsuarioOutputDto)
|
@Serealize(AuthTokenOutputDto)
|
||||||
@Recaptcha()
|
@Recaptcha()
|
||||||
@Post('login-usuario')
|
@Post('login-usuario')
|
||||||
@ApiOperation({
|
@ApiOperation({
|
||||||
|
@ -30,7 +30,14 @@ export class AuthService {
|
|||||||
|
|
||||||
const payload: JwtPayload = {
|
const payload: JwtPayload = {
|
||||||
id_operador: operador.id_operador,
|
id_operador: operador.id_operador,
|
||||||
id_tipo_usuario: operador.tipoUsuario.id_tipo_usuario,
|
nombre: operador.nombre,
|
||||||
|
operador: operador.operador,
|
||||||
|
institucion: operador.institucion
|
||||||
|
? { id_instituion: operador.institucion.id_institucion }
|
||||||
|
: null,
|
||||||
|
tipoUsuario: {
|
||||||
|
id_tipo_usuario: operador.tipoUsuario.id_tipo_usuario,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
return { operador, token: this.jwtService.sign(payload) };
|
return { operador, token: this.jwtService.sign(payload) };
|
||||||
@ -53,12 +60,19 @@ export class AuthService {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const payload: JwtPayload = {
|
const payload: JwtPayload = {
|
||||||
id_modulo: modulo.id_modulo,
|
|
||||||
id_operador: operador.id_operador,
|
id_operador: operador.id_operador,
|
||||||
id_tipo_usuario: operador.tipoUsuario.id_tipo_usuario,
|
id_modulo: modulo.id_modulo,
|
||||||
|
nombre: operador.nombre,
|
||||||
|
operador: operador.operador,
|
||||||
|
institucion: operador.institucion
|
||||||
|
? { id_instituion: operador.institucion.id_institucion }
|
||||||
|
: null,
|
||||||
|
tipoUsuario: {
|
||||||
|
id_tipo_usuario: operador.tipoUsuario.id_tipo_usuario,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
return { operador, token: this.jwtService.sign(payload) };
|
return { token: this.jwtService.sign(payload) };
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,9 +82,48 @@ export class AuthService {
|
|||||||
.then((usuario) => {
|
.then((usuario) => {
|
||||||
this.validarLogin(usuario, password);
|
this.validarLogin(usuario, password);
|
||||||
|
|
||||||
|
const instituciones: {
|
||||||
|
id_institucion_usuario: number;
|
||||||
|
institucionCarrera: {
|
||||||
|
id_institucion_carrera: number;
|
||||||
|
institucion: { id_institucion: number };
|
||||||
|
carrera: { id_carrera: number };
|
||||||
|
};
|
||||||
|
}[] = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < usuario.instituciones.length; i++)
|
||||||
|
if (
|
||||||
|
usuario.instituciones[i].activo &&
|
||||||
|
!usuario.instituciones[i].multa
|
||||||
|
)
|
||||||
|
instituciones.push({
|
||||||
|
id_institucion_usuario:
|
||||||
|
usuario.instituciones[i].id_institucion_usuario,
|
||||||
|
institucionCarrera: {
|
||||||
|
id_institucion_carrera:
|
||||||
|
usuario.instituciones[i].institucionCarrera
|
||||||
|
.id_institucion_carrera,
|
||||||
|
carrera: {
|
||||||
|
id_carrera:
|
||||||
|
usuario.instituciones[i].institucionCarrera.carrera
|
||||||
|
.id_carrera,
|
||||||
|
},
|
||||||
|
institucion: {
|
||||||
|
id_institucion:
|
||||||
|
usuario.instituciones[i].institucionCarrera.institucion
|
||||||
|
.id_institucion,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
const payload: JwtPayload = {
|
const payload: JwtPayload = {
|
||||||
id_usuario: usuario.id_usuario,
|
id_usuario: usuario.id_usuario,
|
||||||
id_tipo_usuario: usuario.tipoUsuario.id_tipo_usuario,
|
nombre: usuario.nombre,
|
||||||
|
usuario: usuario.usuario,
|
||||||
|
instituciones: instituciones,
|
||||||
|
tipoUsuario: {
|
||||||
|
id_tipo_usuario: usuario.tipoUsuario.id_tipo_usuario,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
return { token: this.jwtService.sign(payload), usuario };
|
return { token: this.jwtService.sign(payload), usuario };
|
||||||
|
@ -1,9 +1,26 @@
|
|||||||
export class JwtPayload {
|
export class JwtPayload {
|
||||||
id_tipo_usuario: number;
|
nombre: string;
|
||||||
|
|
||||||
|
tipoUsuario: { id_tipo_usuario: number };
|
||||||
|
|
||||||
id_modulo?: number;
|
id_modulo?: number;
|
||||||
|
|
||||||
id_operador?: number;
|
id_operador?: number;
|
||||||
|
|
||||||
id_usuario?: number;
|
id_usuario?: number;
|
||||||
|
|
||||||
|
operador?: string;
|
||||||
|
|
||||||
|
usuario?: string;
|
||||||
|
|
||||||
|
institucion?: { id_instituion: number };
|
||||||
|
|
||||||
|
instituciones?: {
|
||||||
|
id_institucion_usuario: number;
|
||||||
|
institucionCarrera: {
|
||||||
|
id_institucion_carrera: number;
|
||||||
|
institucion: { id_institucion: number };
|
||||||
|
carrera: { id_carrera: number };
|
||||||
|
};
|
||||||
|
}[];
|
||||||
}
|
}
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
import { Expose, Type } from 'class-transformer';
|
|
||||||
import { OperadorOutputDto } from '../../../operador/dto/output/operador.dto';
|
|
||||||
|
|
||||||
export class AuthOperadorOutputDto {
|
|
||||||
@Expose()
|
|
||||||
@Type(() => OperadorOutputDto)
|
|
||||||
operador;
|
|
||||||
|
|
||||||
@Expose()
|
|
||||||
token;
|
|
||||||
}
|
|
6
src/auth/dto/output/token.dto.ts
Normal file
6
src/auth/dto/output/token.dto.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import { Expose } from 'class-transformer';
|
||||||
|
|
||||||
|
export class AuthTokenOutputDto {
|
||||||
|
@Expose()
|
||||||
|
token;
|
||||||
|
}
|
@ -1,11 +0,0 @@
|
|||||||
import { Expose, Type } from 'class-transformer';
|
|
||||||
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
|
|
||||||
|
|
||||||
export class AuthUsuarioOutputDto {
|
|
||||||
@Expose()
|
|
||||||
token;
|
|
||||||
|
|
||||||
@Expose()
|
|
||||||
@Type(() => UsuariosOutputDto)
|
|
||||||
usuario;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user