src/auth/auth.service.ts
Methods |
|
constructor(userRp: Repository<UserEntity>, jwtService: JwtService)
|
|||||||||
Defined in src/auth/auth.service.ts:10
|
|||||||||
Parameters :
|
Async loginPassport | ||||||
loginPassport(user: any)
|
||||||
Defined in src/auth/auth.service.ts:49
|
||||||
Parameters :
Returns :
unknown
|
Async saveUser | ||||||
saveUser(user: any)
|
||||||
Defined in src/auth/auth.service.ts:18
|
||||||
Parameters :
Returns :
unknown
|
Async searchUser |
searchUser(email: any, pass: any)
|
Defined in src/auth/auth.service.ts:35
|
Returns :
unknown
|
import { Injectable, UnauthorizedException } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { UserEntity } from 'src/database/entity/user-entity/user-entity';
import { Repository } from 'typeorm';
import { JwtService } from '@nestjs/jwt';
import * as bcrypt from 'bcrypt';
import { ExceptionErrorMessage } from 'src/validation/exception-error';
@Injectable()
export class AuthService {
constructor(@InjectRepository(UserEntity)
private readonly userRp:Repository<UserEntity>,
private jwtService: JwtService
) {}
//Guardar Usuario
async saveUser(user:any){
try {
const salt = await bcrypt.genSalt();
const hashedPassword = await bcrypt.hash(user.password, salt);
user.password = hashedPassword;
user = await this.userRp.save(user);
const { password, ...result } = user;
return result;
} catch (error) {
ExceptionErrorMessage(error);
}
}
//Consultar un usuario por su email
async searchUser(email:any,pass:any){
const user = await this.userRp.findOne({where:{email:email}});
if (!user) {
return null;
}
const passwordIsValid = await user.validatePassword(pass);
if(!passwordIsValid){
return null;
}
const { password, ...result } = user;
return result;
}
//Conceder permiso de acceso y generaccion de token
async loginPassport(user:any){
const payload = { email:user.email, sub: user.id};
return {
access_token: this.jwtService.sign(payload),
name:user.fullName,
avatar:user.avatar
}
}
}