Holaaa 😄
Aca dejo el link del proyecto curso-nodejs-auth
__
git clone https://github.com/platzi/curso-nodejs-auth.git
Introducción
Cómo autenticar usuarios con Node.js
Autenticación vs. autorización
Tienda en línea: instalación del proyecto
Protección de contraseñas
Middleware de verificación
Hashing de contraseñas con bcryptjs
Implementando hashing para usuarios
Passport y JSON Web Tokens
Implemetando login con Passport.js
¿Qué es un JWT?
Firmar y verificar tokens
Generar JWT en el servicio
Protección de rutas
Control de roles
Obteniendo órdenes del perfil
Manejo de la autenticación desde el cliente
Envío de emails con Node.js
Cómo enviar emails con Node.js
Implementando el envío de emails
Recuperación de contraseñas
Generando links de recuperación
Validando tokens para cambio de contraseña
Despliegue a producción
Deploy en Heroku
Próximos pasos
Cómo seguir aprendiendo backend con Node.js
Aportes 6
Preguntas 6
Holaaa 😄
Aca dejo el link del proyecto curso-nodejs-auth
__
git clone https://github.com/platzi/curso-nodejs-auth.git
Correr los videos 1.25 creo que va como piña jaja
la pagina pgadmin no trae la base de datos, curso a medias. =(
en el proyecto esta un archivo docker-compose.yml que utiliza una carpeta local en el directorio del proyecto, esto en terminos de rendimiento no es acosejable ya que docker iniciará los contenedores como servicios siempre que se inicie (si usas docker en windows cuando abras el cliente de coker o si lo activas para que inicie con windows, si usas linux al activar el servicio de docker para que inicie automáticamente) y al depender del volumen local puede traer problemas. lo mejor es usar los volumenes de docker.
Les dejo mi archivo docker-compose.yml que utiliza este metodo y ademas usa variables dntorno (las que usamos en el archivo .env del proyecto)
Adicionalmente estoy utilizando phppgadmin como gestor para postgress pero pueden sustituirlo por pgadmin sin problema
version: '3.3'
services:
db:
container_name: db
image: 'postgres:${TAG}'
restart: always
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
ports:
- 5432:5432
volumes:
- dbdata:/var/lib/postgresql/data
networks:
- app-network
dbmanager:
image: bitnami/phppgadmin:7
restart: always
environment:
DATABASE_HOST: db
DATABASE_PORT_NUMBER: ${DB_PORT}
DATABASE_SSL_MODE: allow
ALLOW_EMPTY_PASSWORD: yes
ports:
- 8081:8080
depends_on:
- db
networks:
- app-network
#Docker Networks
networks:
app-network:
driver: bridge
#Volumes
volumes:
dbdata:
driver: local
mi archivo .env es este
NODE_ENV="development"
TAG=13
PORT=3000
DB_NAME="my_store"
DB_USER="admin123"
DB_PASSWORD="admin123"
DB_HOST="localhost"
DB_PORT="5432"
Sigo usando las variables separadas porque son necesarias para usarlas en el archivo decker-compose.yml
Repositorio del proyecto base: https://github.com/platzi/curso-nodejs-auth/tree/1-init
Clonando código base e instalando dependencias: git clone https://github.com/platzi/curso-nodejs-auth.git my-store-auth
Crear variables de entorno propias:
PORT=3000
DATABASE_URL='postgres://platzinautas:[email protected]:5432/my_store'
docker-compose up -d postgres
(importante crear la carpeta postgres_data
).docker-compose up -d pgadmin
.docker-compose ps
.npm run migrations:run
–
En Insomnia se pueden crear ambientes (producción, desarrollo, etc.), para ello se hace click en la parte del cuadro verde e ir a Manage Environments, o bien presionar Ctrl E
.
En donde dice Sub Environments, presionar en el ícono de +
.
Se añade un nombre al nuevo ambiente, color al gusto e insertar variables de ambiente como en el siguiente ejemplo:
Click en Done y listo, ahora es posible hacer un switch entre ambientes. Para usar la variable creada basta con escribir guion bajo _
en la URL y aparecerá la variable disponible.
De este modo es más fácil configurar un entorno de desarrollo y/o producción sin tener que hacer cambios en la URL cada vez que deseemos apuntar a una URL de producción o desarrollo.
Si usas postman, tambien tienes la opcion de crear variables de entorno…
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.