Nest
Tutorial Nest: Registro de usuarios
Nest registro usuarios: creación y manejo. Domina la creación y manejo de sistemas de registro de usuarios en Nest con ejemplos prácticos.
Aprende Nest GRATIS y certifícateIntroducción
Crear un método de registro para crear nuevos usuarios en el backend a nivel de base de datos.
Este método estará en un controlador y será accesible desde el frontend por cualquier usuario no autenticado.
Instalar librerías
Instalar librería para cifrar contraseña de nuevos usuarios:
npm install bcrypt
Funcionamiento de bcrypt.
Crear controlador
Para crear el método de registro se puede hacer en un controlador como por ejemplo UserController o AuthenticationController:
nest generate controller auth/authentication
Esto genera un archivo authentication.controller.ts
en la carpeta auth.
Desarrollar registro
Dentro del controlador AuthenticationController inyectamos el UserRepository
para poder comprobar la existencia de usuarios por email y para crear nuevos usuarios.
import { Controller } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { User } from 'src/user/user.model';
import { Repository } from 'typeorm';
@Controller('authentication')
export class AuthenticationController {
constructor(
@InjectRepository(User) private userRepository: Repository<User>
) {}
}
Creamos la interfaz register.dto.ts
para recibir los datos del registro (email y password):
export interface Register {
email: string;
password: string;
// ... agregar más campos si se desean para el registro ...
}
Debe existir una clase User y una configuración con TypeORM para tener repositorio para entidad User.
Archivo user.model.ts
:
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
import { Role } from "./role.enum";
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column({unique: true})
email: string;
@Column()
password: string;
@Column({nullable: true}) // opcional
phone: string;
@Column({nullable: true}) // opcional
addressStreet: string;
@Column({nullable: true}) // opcional
photoUrl: string;
@Column({
type: 'enum',
enum: Role,
default: Role.USER
})
role: Role;
}
Dentro del controlador crearíamos el método de registro llamado register()
:
@Post('register')
async register(@Body() register: Register) {
const exists = await this.userRepository.existsBy({
email: register.email
});
if(exists)
throw new ConflictException("Email ocupado");// 409
// Cifrar contraseña. El 10 es la fuerza de cifrado
const password = bcrypt.hashSync(register.password, 10);
// crear usuario en base de datos
const user: User = {
id: 0,
email: register.email,
password: password,
phone: null,
role: Role.USER,
addressStreet: null,
photoUrl: null
};
await this.userRepository.save(user);
}
Se debe comprobar que se registran usuarios en base de datos con contraseña cifrada:
Ejercicios de esta lección Registro de usuarios
Evalúa tus conocimientos de esta lección Registro de usuarios con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Métodos GET en controladores
Método find en un servicio con repositorio
Desarrollo e inyección de servicios
Creación de entidades y tablas
Método DELETE en un controlador
Filtrados en consultas de repositorios
Método GET en un controlador
Estrategia de autenticación JwtStrategy
CRUD con repositorios
Método delete en un servicio con repositorio
API REST CRUD de entidad Restaurante con TypeORM
Creación de una entidad TypeORM
Crear y utilizar módulos
Métodos PUT en controladores
Iniciar sesión método de login
Configuración de TypeORM con MySQL
Gestión de errores en controladores
Decoradores en entidades
Instalación NestJS
Recibir y servir imágenes
Estrategia de autenticación JWT
Método PUT en un controlador
Comandos NestJS CLI
Método POST en un controlador
Login y registro
API REST CRUD de entidades Product y Manufacturer
Método save en un servicio con repositorio
Registro de usuarios
Métodos POST en controladores
Todas las lecciones de Nest
Accede a todas las lecciones de Nest y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Instalación Nestjs
Introducción Y Entorno
Comandos Nestjs Cli
Introducción Y Entorno
Métodos Get En Controladores
Controladores
Métodos Post En Controladores
Controladores
Métodos Put En Controladores
Controladores
Métodos Delete En Controladores
Controladores
Gestión De Errores En Controladores
Controladores
Recibir Y Servir Imágenes
Controladores
Desarrollo E Inyección De Servicios
Servicios E Inyección De Dependencias
Crear Y Utilizar Módulos
Módulos
Configuración De Typeorm Con Mysql
Typeorm
Creación De Entidades Y Tablas
Typeorm
Decoradores En Entidades
Typeorm
Crud Con Repositorios
Typeorm
Filtrados En Consultas De Repositorios
Typeorm
Registro De Usuarios
Autenticación
Iniciar Sesión Método De Login
Autenticación
Estrategia De Autenticación Jwtstrategy
Autenticación
Login Y Registro
Autenticación
Estrategia De Autenticación Jwt
Autenticación
Certificados de superación de Nest
Supera todos los ejercicios de programación del curso de Nest y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Crear la entidad User
- Crear método para recibir datos de registro
- Verificar que el email a registrar no está ocupado
- Cifrar la contraseña
- Crear cuenta de usuario