A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Secret desde variables de entorno

12/22
Recursos

Aportes 2

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Seria bueno ver la estrategia de refresh token con Nest!!!

Yo lo hice de esta manera:

鈥 auth.service.ts

import { Injectable } from '@nestjs/common';
import * as bcrypt from 'bcrypt';

import { UsersService } from './../../../users/services/users.service';
import { JwtService } from '@nestjs/jwt';
import { User } from './../../../users/entities/user.entity';
import { PayloadToken } from './../../models/token.model';

@Injectable()
export class AuthService {
  constructor(
    private userService: UsersService,
    private jwtService: JwtService,
  ) {}

  async validateUser(email: string, password: string) {
    const user = await this.userService.findByEmail(email);
    if (user) {
      const isMatch = await bcrypt.compare(password, user.password);
      if (isMatch) {
        const token = await this.generateJWT(user);
        return {
          user,
          token,
        };
      }
    }
    return null;
  }

  generateJWT(user: User) {
    const payload: PayloadToken = { role: user.role, sub: user.id };
    return this.jwtService.sign(payload);
  }
}

El controlador :

export class AuthController {
  @UseGuards(AuthGuard('local'))
  @Post('/login')
  @HttpCode(200)
  login(@Req() req: Request) {
    return req.user;
  }
}