Comando para crear decorators:
nest g d auth/decorators/nombre --flat
Introducci贸n
C贸mo autenticar usuarios con NestJS
Instalaci贸n de PlatziStore con MongoDB
Instalaci贸n de PlatziStore con TypeORM
Protecci贸n con guardianes
Introducci贸n a Guards
Usando un decorador
Guard con variables de ambiente
Autenticaci贸n con Passport
Hashing de contrase帽as en TypeORM
Hashing de contrase帽as en MongoDB
Autenticaci贸n con Passport.js
Ruta de login
Autenticaci贸n con JSON Web Tokens
Conectando Passport con JWT
Secret desde variables de entorno
Implementando JWT Guard
Extendiendo JWT Guard
Control de roles en NestJS
Obteniendo 贸rdenes del perfil
Deployment
Configurando Mongo Atlas
Deploy de Mongo en Heroku
Configuraci贸n de PostgreSQL en Heroku
Deploy de Postgres en Heroku
Corriendo migraciones de Postgres en Heroku
Pr贸ximos pasos
驴Quieres m谩s cursos de NestJS?
Crea una cuenta o inicia sesi贸n
隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera
Aportes 2
Preguntas 0
Comando para crear decorators:
nest g d auth/decorators/nombre --flat
Esto aplica para ambos proyectos
Para proteger todo un controlador en lugar de solo una ruta en especifico, podemos asignarle el guard al controlador.
// src\app.controller.ts
...
@UseGuards(ApiKeyGuard)
@Controller()
...
Podemos crear un decorador para volver publico alguna ruta protegida.
Para ello, modificamos nuestro controlador
...
const isPublic = this.reflector.get('isPublic', context.getHandler());
if (isPublic) {
return true;
}
const request = context.switchToHttp().getRequest<Request>();
const authHeader = request.header('Auth');
return authHeader === '1234';
}
Creamos un decorador que nos facilite el envi贸 de metadata a la request
// src\auth\decorators\public.decortator.ts
import { SetMetadata } from '@nestjs/common'
export const IS_PUBLIC_KEY = 'isPublic';
export const Public = () => SetMetadata(IS_PUBLIC_KEY, true);
Ahora podemos declara como publico alguna ruta protegida
@Public() // usando el decorador
@Get('nuevo')
newEndpoint() {
return 'yo soy nuevo';
}
驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.