Se corigieron errores
This commit is contained in:
+12
-11
@@ -3,22 +3,23 @@ import { AuthController } from './auth.controller';
|
||||
import { AuthService } from './auth.service';
|
||||
import { UsuariosModule } from 'src/usuarios/usuarios.module';
|
||||
import { JwtModule } from '@nestjs/jwt';
|
||||
|
||||
|
||||
import { ConfigModule, ConfigService } from '@nestjs/config';
|
||||
import { JwtStrategy } from './jwt.strategy';
|
||||
|
||||
@Module({
|
||||
imports:[
|
||||
imports: [
|
||||
UsuariosModule,
|
||||
JwtModule,
|
||||
JwtModule.register({
|
||||
global:true,
|
||||
secret: process.env.JWT,
|
||||
signOptions:{expiresIn:"1d"},
|
||||
|
||||
JwtModule.registerAsync({
|
||||
imports: [ConfigModule],
|
||||
inject: [ConfigService],
|
||||
useFactory: (config: ConfigService) => ({
|
||||
secret: config.get<string>('JWT'), // lee la variable del .env
|
||||
signOptions: { expiresIn: '1d' },
|
||||
}),
|
||||
}),
|
||||
],
|
||||
controllers: [AuthController],
|
||||
providers: [AuthService],
|
||||
exports:[AuthService]
|
||||
providers: [AuthService, JwtStrategy],
|
||||
exports: [AuthService],
|
||||
})
|
||||
export class AuthModule {}
|
||||
|
||||
+49
-51
@@ -1,4 +1,9 @@
|
||||
import { BadRequestException, Injectable, UnauthorizedException, InternalServerErrorException } from '@nestjs/common';
|
||||
import {
|
||||
BadRequestException,
|
||||
Injectable,
|
||||
UnauthorizedException,
|
||||
InternalServerErrorException,
|
||||
} from '@nestjs/common';
|
||||
import { UsuariosService } from 'src/usuarios/usuarios.service';
|
||||
import * as argon2 from 'argon2';
|
||||
import { LoginDto } from './dto/login.dto';
|
||||
@@ -7,64 +12,57 @@ import { JwtService } from '@nestjs/jwt';
|
||||
|
||||
@Injectable()
|
||||
export class AuthService {
|
||||
constructor(
|
||||
private readonly usuarioService:UsuariosService,
|
||||
private readonly jwtService:JwtService
|
||||
){}
|
||||
constructor(
|
||||
private readonly usuarioService: UsuariosService,
|
||||
private readonly jwtService: JwtService,
|
||||
) {}
|
||||
|
||||
async registro({nombre, contraseña,tipoUsuario}: CreateUsuarioDto){
|
||||
|
||||
const usuario = await this.usuarioService.findOneByName(nombre);
|
||||
if(usuario){
|
||||
throw new BadRequestException("Nombre de usuario ya existente");
|
||||
}
|
||||
|
||||
try{
|
||||
const hashedContraseña = await argon2.hash(contraseña);
|
||||
|
||||
await this.usuarioService.create({
|
||||
nombre,
|
||||
contraseña: hashedContraseña,
|
||||
tipoUsuario,
|
||||
});
|
||||
|
||||
return {
|
||||
message: "Usuario registrado exitosamente"
|
||||
};
|
||||
}catch(error){
|
||||
|
||||
throw new InternalServerErrorException('Error al crear el usuario');
|
||||
}
|
||||
async registro({ nombre, contraseña, tipoUsuario }: CreateUsuarioDto) {
|
||||
const usuario = await this.usuarioService.findOneByName(nombre);
|
||||
if (usuario) {
|
||||
throw new BadRequestException('Nombre de usuario ya existente');
|
||||
}
|
||||
|
||||
async login({nombre, contraseña}:LoginDto){
|
||||
const usuario= await this.usuarioService.findOneByName(nombre)
|
||||
if(!usuario){
|
||||
throw new UnauthorizedException("Usuario no encontrado");
|
||||
try {
|
||||
const hashedContraseña = await argon2.hash(contraseña);
|
||||
|
||||
}
|
||||
const contraseñaValida= await argon2.verify(contraseña, usuario.contraseña);
|
||||
if(!contraseñaValida){
|
||||
throw new UnauthorizedException("Contraseña invalida");
|
||||
await this.usuarioService.create({
|
||||
nombre,
|
||||
contraseña: hashedContraseña,
|
||||
tipoUsuario,
|
||||
});
|
||||
|
||||
}
|
||||
const dataUser={
|
||||
id:usuario.id_usuario,
|
||||
nombre:usuario.nombre,
|
||||
tipoUsuario:usuario.tipoUsuario.id_tipo_usuario
|
||||
}
|
||||
|
||||
const token=await this.jwtService.sign(dataUser)
|
||||
return{
|
||||
token:token,
|
||||
};
|
||||
return {
|
||||
message: 'Usuario registrado exitosamente',
|
||||
};
|
||||
} catch (error) {
|
||||
throw new InternalServerErrorException('Error al crear el usuario');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
async login({ nombre, contraseña }: LoginDto) {
|
||||
const usuario = await this.usuarioService.findOneByName(nombre);
|
||||
if (!usuario) {
|
||||
throw new UnauthorizedException('Usuario no encontrado');
|
||||
}
|
||||
|
||||
const contraseñaValida = await argon2.verify(
|
||||
usuario.contraseña,
|
||||
contraseña,
|
||||
);
|
||||
|
||||
if (!contraseñaValida) {
|
||||
throw new UnauthorizedException('Contraseña invalida');
|
||||
}
|
||||
const dataUser = {
|
||||
id: usuario.id_usuario,
|
||||
nombre: usuario.nombre,
|
||||
tipoUsuario: usuario.tipoUsuario.id_tipo_usuario,
|
||||
};
|
||||
|
||||
const token = await this.jwtService.sign(dataUser);
|
||||
return {
|
||||
token: token,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user