Se corrigio el login
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
INSERT INTO tipo_miembro(tipo_miembro) VALUES("Admin");
|
||||
INSERT INTO tipo_miembro(tipo_miembro) VALUES("Alumno");
|
||||
@@ -5,6 +5,7 @@ import { Usuario } from 'src/usuario/usuario.entity';
|
||||
import { Repository } from 'typeorm';
|
||||
import { AuthService } from './auth.service';
|
||||
import { LoginUsuarioDto } from './dto/loginUsuario.dto';
|
||||
import { RegistrarMiembroDto } from './dto/registrarMiembro.dto';
|
||||
import { RegistrarUsuarioDto } from './dto/registrarUsuario.dto';
|
||||
|
||||
@Controller('auth')
|
||||
@@ -14,8 +15,8 @@ export class AuthController {
|
||||
) /* @InjectRepository(Usuario) private usuarioRepository: Repository<Usuario> */ {}
|
||||
|
||||
@Post('registro')
|
||||
registrarUsuario(@Body() registrarUsuario: RegistrarUsuarioDto) {
|
||||
return this.authService.registrar(registrarUsuario);
|
||||
registrarUsuario(@Body() registrarMiembro: RegistrarMiembroDto) {
|
||||
return this.authService.registrar(registrarMiembro);
|
||||
}
|
||||
|
||||
@Post('login')
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { PassportModule } from '@nestjs/passport';
|
||||
import { UsuarioModule } from 'src/usuario/usuario.module';
|
||||
import { AuthService } from './auth.service';
|
||||
import { jwtStrategy } from './jwt.strategy';
|
||||
import { AuthController } from './auth.controller';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { Usuario } from 'src/usuario/usuario.entity';
|
||||
import { UsuarioService } from 'src/usuario/usuario.service';
|
||||
import { JwtModule } from '@nestjs/jwt';
|
||||
import { jwtConstants } from './jwt.constants';
|
||||
import { MiembroModule } from 'src/miembro/miembro.module';
|
||||
import { MiembroService } from 'src/miembro/miembro.service';
|
||||
import { Miembro } from 'src/miembro/entity/miembro.entity';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
UsuarioModule,
|
||||
MiembroModule,
|
||||
PassportModule,
|
||||
TypeOrmModule.forFeature([Usuario]),
|
||||
TypeOrmModule.forFeature([Miembro]),
|
||||
JwtModule.register({
|
||||
secret: jwtConstants.secret,
|
||||
signOptions: { expiresIn: '5h' },
|
||||
}),
|
||||
],
|
||||
providers: [AuthService, jwtStrategy, UsuarioService, jwtStrategy],
|
||||
providers: [AuthService, jwtStrategy, MiembroService, jwtStrategy],
|
||||
controllers: [AuthController],
|
||||
})
|
||||
export class AuthModule {}
|
||||
|
||||
+18
-17
@@ -1,45 +1,44 @@
|
||||
import { HttpException, Injectable } from '@nestjs/common';
|
||||
import { UsuarioService } from 'src/usuario/usuario.service';
|
||||
import { JwtService } from '@nestjs/jwt';
|
||||
import * as bcrypt from 'bcrypt';
|
||||
import { RegistrarUsuarioDto } from './dto/registrarUsuario.dto';
|
||||
import { hash } from 'bcrypt';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Usuario } from 'src/usuario/usuario.entity';
|
||||
import { Repository } from 'typeorm';
|
||||
import { LoginUsuarioDto } from './dto/loginUsuario.dto';
|
||||
import { compare } from 'bcrypt';
|
||||
import { jwtConstants } from './jwt.constants';
|
||||
import { LoginMiembroDto } from './dto/loginMiembro.dto';
|
||||
import { Miembro } from 'src/miembro/entity/miembro.entity';
|
||||
import { RegistrarMiembroDto } from './dto/registrarMiembro.dto';
|
||||
|
||||
@Injectable()
|
||||
export class AuthService {
|
||||
constructor(
|
||||
private jwtService: JwtService,
|
||||
private readonly usuarioService: UsuarioService,
|
||||
@InjectRepository(Usuario) private usuarioRepository: Repository<Usuario>,
|
||||
@InjectRepository(Miembro) private miembroRepository: Repository<Miembro>,
|
||||
|
||||
) {}
|
||||
|
||||
async registrar(registrarUsuario: RegistrarUsuarioDto) {
|
||||
async registrar(registrarMiembro: RegistrarMiembroDto) {
|
||||
|
||||
const { email, password } = registrarUsuario;
|
||||
const { email, password } = registrarMiembro;
|
||||
|
||||
const plainToHash = await hash(password, 10);
|
||||
|
||||
if (await this.usuarioRepository.findOne({ where: { email } }))
|
||||
if (await this.miembroRepository.findOne({ where: { email } }))
|
||||
throw new HttpException('usuario existe', 403);
|
||||
|
||||
registrarUsuario = { ...registrarUsuario, password: plainToHash };
|
||||
registrarMiembro = { ...registrarMiembro, password: plainToHash };
|
||||
|
||||
return this.usuarioRepository.save(
|
||||
this.usuarioRepository.create(registrarUsuario),
|
||||
return this.miembroRepository.save(
|
||||
this.miembroRepository.create(registrarMiembro),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
async login(loginUsuario: LoginUsuarioDto) {
|
||||
const { email, password } = loginUsuario;
|
||||
async login(loginMiembro: LoginMiembroDto) {
|
||||
const { email, password } = loginMiembro;
|
||||
|
||||
const usuario = await this.usuarioRepository.findOne({ where: { email } });
|
||||
const usuario = await this.miembroRepository.findOne({ where: { email } });
|
||||
|
||||
if (!usuario) throw new HttpException('Usuario no encontrado', 404);
|
||||
|
||||
@@ -47,12 +46,14 @@ export class AuthService {
|
||||
|
||||
if (!checkPassword) throw new HttpException('Contraseña incorrecta', 403);
|
||||
|
||||
const payload = { id_usuario: usuario.id_usuario, name: usuario.nombre };
|
||||
const payload = { id_usuario: usuario.id_miembro,id_tipoMiembro: usuario.id_tipo_miembro, name: usuario.nombre };
|
||||
console.log(payload)
|
||||
const token = this.jwtService.sign(payload); //firma el token
|
||||
console.log(token)
|
||||
|
||||
const data = {
|
||||
usuario: usuario.nombre,
|
||||
id: usuario.id_usuario,
|
||||
id: usuario.id_miembro,
|
||||
email: usuario.email,
|
||||
token,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import { IsEmail, MaxLength, MinLength } from "class-validator"
|
||||
|
||||
|
||||
export class LoginMiembroDto {
|
||||
@IsEmail()
|
||||
email: string
|
||||
|
||||
@MinLength(10)
|
||||
@MaxLength(15)
|
||||
password: string
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import { PartialType } from '@nestjs/swagger';
|
||||
import { IsEmail, IsNotEmpty, MaxLength, MinLength } from 'class-validator';
|
||||
import { LoginUsuarioDto } from './loginUsuario.dto';
|
||||
|
||||
export class RegistrarMiembroDto extends PartialType(LoginUsuarioDto) {
|
||||
@IsNotEmpty()
|
||||
nombre: string;
|
||||
|
||||
@IsNotEmpty()
|
||||
apellido_paterno: string;
|
||||
|
||||
@IsNotEmpty()
|
||||
apellido_materno: string;
|
||||
|
||||
@IsNotEmpty()
|
||||
id_tipo_miembro: number;
|
||||
|
||||
@MinLength(10)
|
||||
@MaxLength(15)
|
||||
password: string;
|
||||
|
||||
descripcion: string
|
||||
|
||||
id_carrera: number
|
||||
|
||||
semestre: string
|
||||
|
||||
@IsNotEmpty()
|
||||
cuenta: number
|
||||
|
||||
@IsEmail()
|
||||
email: string;
|
||||
}
|
||||
@@ -13,10 +13,10 @@ export class MiembroContacto {
|
||||
@Column()
|
||||
id_contacto: number
|
||||
|
||||
@OneToMany(
|
||||
/* @OneToMany(
|
||||
() => Miembro, (miembro) => miembro.miembroContacto
|
||||
)
|
||||
miembro: Miembro[]
|
||||
miembro: Miembro[] */
|
||||
|
||||
@OneToMany(
|
||||
() => Contacto, (contacto) => contacto.miembroContacto
|
||||
|
||||
@@ -35,16 +35,16 @@ export class Miembro {
|
||||
@IsEmail()
|
||||
email: string;
|
||||
|
||||
@Column({ nullable: false, length: 40 })
|
||||
@Column({ nullable: false })
|
||||
password: string;
|
||||
|
||||
@Column({ length: 260, nullable: false })
|
||||
@Column({ length: 260, nullable:true})
|
||||
descripcion: string;
|
||||
|
||||
@Column({ nullable: false })
|
||||
@Column({nullable: true})
|
||||
id_carrera: number;
|
||||
|
||||
@Column({ length: 40 })
|
||||
@Column({ length: 40, nullable:true})
|
||||
semestre: string;
|
||||
|
||||
@Column({ nullable: false })
|
||||
@@ -64,11 +64,11 @@ export class Miembro {
|
||||
@JoinColumn({ name: 'id_carrera' })
|
||||
carrera: Carrera;
|
||||
|
||||
@ManyToOne(
|
||||
/* @ManyToOne(
|
||||
() => MiembroContacto, (miembroContacto) => miembroContacto.miembro
|
||||
)
|
||||
@JoinColumn({name: "id_miembro"})
|
||||
miembroContacto: MiembroContacto
|
||||
miembroContacto: MiembroContacto */
|
||||
|
||||
@OneToMany(
|
||||
() => MiembroProyecto, (miembroProyecto) => miembroProyecto.miembro
|
||||
|
||||
@@ -1,4 +1,16 @@
|
||||
import { Controller } from '@nestjs/common';
|
||||
import { Controller, Get, UseGuards } from '@nestjs/common';
|
||||
import { JwtAuthGuard } from 'src/auth/jwt-auth.guard';
|
||||
import { Miembro } from './entity/miembro.entity';
|
||||
import { MiembroService } from './miembro.service';
|
||||
|
||||
@Controller('miembro')
|
||||
export class MiembroController {}
|
||||
export class MiembroController {
|
||||
|
||||
constructor(private readonly miembroService: MiembroService){}
|
||||
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@Get()
|
||||
getUsuarios(): Promise<Miembro[]>{
|
||||
return this.miembroService.getUsuarios()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { Miembro } from './entity/miembro.entity';
|
||||
import { MiembroController } from './miembro.controller';
|
||||
import { MiembroService } from './miembro.service';
|
||||
|
||||
@Module({
|
||||
imports:[TypeOrmModule.forFeature([Miembro])],
|
||||
controllers: [MiembroController],
|
||||
providers: [MiembroService]
|
||||
})
|
||||
|
||||
@@ -1,4 +1,23 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Miembro } from './entity/miembro.entity';
|
||||
|
||||
@Injectable()
|
||||
export class MiembroService {}
|
||||
export class MiembroService {
|
||||
constructor(
|
||||
@InjectRepository(Miembro) private miembroRepository: Repository<Miembro>,
|
||||
) {}
|
||||
|
||||
getUsuarios(){
|
||||
return this.miembroRepository.find()
|
||||
}
|
||||
|
||||
getUsuario(email: string) {
|
||||
return this.miembroRepository.findOne({
|
||||
where: {
|
||||
email,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user