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 { LoginOperadorDto } from './dto/input/login-operador.dto';
|
||||
import { LoginUsuarioDto } from './dto/input/login-usuario.dto';
|
||||
import { AuthOperadorOutputDto } from './dto/output/operador.dto';
|
||||
import { AuthUsuarioOutputDto } from './dto/output/usuario.dto';
|
||||
import { AuthTokenOutputDto } from './dto/output/token.dto';
|
||||
|
||||
@Controller('auth')
|
||||
@ApiTags('auth')
|
||||
export class AuthController {
|
||||
constructor(private authService: AuthService) {}
|
||||
|
||||
@Serealize(AuthOperadorOutputDto)
|
||||
@Serealize(AuthTokenOutputDto)
|
||||
@Recaptcha()
|
||||
@Post('login-admin')
|
||||
@ApiOperation({
|
||||
@ -36,7 +35,7 @@ export class AuthController {
|
||||
return this.authService.loginAdmin(body.operador, body.password);
|
||||
}
|
||||
|
||||
@Serealize(AuthOperadorOutputDto)
|
||||
@Serealize(AuthTokenOutputDto)
|
||||
@Recaptcha()
|
||||
@Post('login-operador')
|
||||
@ApiOperation({
|
||||
@ -62,7 +61,7 @@ export class AuthController {
|
||||
);
|
||||
}
|
||||
|
||||
@Serealize(AuthUsuarioOutputDto)
|
||||
@Serealize(AuthTokenOutputDto)
|
||||
@Recaptcha()
|
||||
@Post('login-usuario')
|
||||
@ApiOperation({
|
||||
|
@ -30,7 +30,14 @@ export class AuthService {
|
||||
|
||||
const payload: JwtPayload = {
|
||||
id_operador: operador.id_operador,
|
||||
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) };
|
||||
@ -53,12 +60,19 @@ export class AuthService {
|
||||
);
|
||||
|
||||
const payload: JwtPayload = {
|
||||
id_modulo: modulo.id_modulo,
|
||||
id_operador: operador.id_operador,
|
||||
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) => {
|
||||
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 = {
|
||||
id_usuario: usuario.id_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 };
|
||||
|
@ -1,9 +1,26 @@
|
||||
export class JwtPayload {
|
||||
id_tipo_usuario: number;
|
||||
nombre: string;
|
||||
|
||||
tipoUsuario: { id_tipo_usuario: number };
|
||||
|
||||
id_modulo?: number;
|
||||
|
||||
id_operador?: 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