David Behar
Geraldine
Geraldine
David Behar
Geraldine
Geraldine
David Behar
Mariela de Jesus Rivas Hernandez
rusbel bermúdez rivera
Jorge Alonso Molina Chirinos
Marcelo Oggero
Enrique Devars
Manuel Ojeda
Diego Alejandro Zacarias
Luis Lazcano
Karen Paola Diaz Duarte
Gerson Montenegro
Gerson Montenegro
Gabriel Quevedo
Wilson Fernando Antury Torres
Eden Gomez Gress
Diego Forero
JOSE LUIS DAMIAN SAAVEDRA
Guillermo Rodas
Naldo Duran
David Camacho
Eden Gomez Gress
Diego Forero
Luis Rodriguez
Carlos Enrique Ramírez Flores
Santiago Lopera Naranjo
Tatiana Karina Valencia Hernández
Maria Elizabeth Minero Alvarenga
Arquitectura del proyecto Platzi Video
Se va a desarrollar un sistema de autenticación con passport.js en el que nos conectemos con un API Server teniendo en cuenta los permisos de lectura y/o escritura que tengas.
El API Server sólo tendrá un CRUD (Create, Read, Update, Delete), para el caso de escuela de JS será un CRUD de películas.
Además crearemos 2 nuevos endpoints, 1 de ingreso (signIn) y otro de registro (signUp)
API Token
Se crearán 2 tipos de Access token:
Admin client: permisos administrativos (CRUD películas)
Render Server: permisos de sólo lectura (R películas)
Al hacer una autenticación se va a generar un access token, con el estándar de JWT (JSON Web Token), mismo que mantendrá los permisos.
Reglas
La aplicación (SPA, single page application) se va a comunicar a través del Render Server (de sólo lectura) mismo que se comunicará con el API Server
El server que crearemos hará de proxy entre la SPA y el API server
La SPA se comunicará con el API server mediante una cookie con el access token del render server
Tengo una duda al respecto de las SPA, para entrar en contexto si tenemos una **SPA ** para administradores este se conectaría directamente con el API Server y aquellos usuarios _Públicos _harían llamadas al Render Server ? es lo que vagamente entiendo al respecto de las peticiones que estos usuarios harían
o cada usuario (administrador, publico) en caso de tener una interfaz gráfica SPA deben conectarse al Render Server? si esto es verdadero, ¿cada tipo de usuario ha de tener su propio Render Server? o simplemente se debe jugar con las variables de entorno dependiendo el tipo de usuario que ha de autenticar en la aplicación?
Nota importante:, al hacer clon del proyecto se debe de crear un .env con la configuración del proyecto, para ésto deberán de crear un servidor de mongo que reaccione, pero lo mejor sería ver el curso de backend con node
Muchisimas gracias, me ahorraste mucho tiempo!
para aquellos que copien el proyecto existente de un folder a otro y tengan error (a mi me pasó con nodemon) hice en consola
npm rebuild
desconozco sí sea buena practica
Si descargaste el proyecto y no te funcionó al ejecutarlo (si te sale el error de que no se detecta node_modules), hay que hacer lo siguiente primero:
npm install
"dev": "set DEBUG=app:*&& nodemon index",
npm run dev
Ojo que esto lo hice en Windows. Desconozco si el mismo problema sucede en MacOS o Linux. Espero les sirva.
perfecto era lo que necesitaba!
Por que es obligatorio que tenga un render server nuestro frontend?
Para que funcione el Server Side Rendering y disfrutar de sus beneficios. Además de poder realizar los procedimientos de login en el servidor de tender.
Segun entiendo, se implemento un ssr en el proyecto que funciona como proxy a las api's para poder gestionar la renovacion de los tokens, recordemos que cada token solo tiene 15 minutos de vida pero tenemos que obligar al usuario a ingresar sus credenciales cada 15 minutos por lo que con la cookie mantenemos una sesion stateless que permite renovar el token.
Link al repositorio del proyecto de backend Git-hub
El proyecto no estará en github?
Empecé este curso y cuando llegué a esta clase vi que requería el curso de SSR, así que unos días después vuelvo a retomarlo luego de terminar el anterior :-)
...faltó decir que el de back end con node también lo completé :-)
Les dejo mi Pizarra con la explicación gráfica del Profesor ^^ <3 https://ibb.co/yW5jxqL
Estamos hablando de dos perfiles: Admin client, quien tiene permisos para crear, leer, actualizar y borrar elementos de la BD. y el usuario visitante que solo tiene permisos de lectura. En éste caso la aplicación de admin se autentica directamente con el API server?
Disculpen companeros pero baje el proyecto del enlace que deji el profesor. ya llene las variables que se enuentran en el archivo. env.example con mis respectivas credenciales y cuando ejecuto "npm run dev " me sale este error. alguien que me oriente por favor!
Connected succesfully to mongo Connected succesfully to mongo MongoParseError: URI does not have hostname, domain name and tld at parseSrvConnectionString (/Users/eden/Desktop/platzi/platzi-passport/platzi-auth-passport-arquitectura-del-proyecto-platzi-video/movies-api/node_modules/mongodb-core/lib/uri_parser.js:41:21)
Hola al parecer en la variable que estas pasando esta llegando algo que no es una url valida. Puedes compartir los datos que estas poniendo en el .env
Interesante. Tengo un caso de uso, espero puedan aclararme la duda.
Orientando el desarrollo a microservicios, tengo un API con los WS para realizar un CRUD de productos, así mismo, he visto conveniente implementar también una API para controlar la autenticación y autorización.
La duda existencial es, ¿Cómo puede proteger mi API de productos con mi API de autenticación?
Mi idea es la siguiente:
Implementar un endpoint en la API de autenticación, para verificar que el token sea correcto, y luego este endpoint utilizarlo para implementar un middleware de seguridad en el API de productos.
Esperando puedan aclarar mi duda, les agradezco el tiempo!
Es una posible solución, te recomiendo que revises "Client Credentials" de OAuth 2.0
✌
Para aquellos que no estén continuando la ruta de la escuela de Javascript y quieran seguir con este proyecto es necesario crear y configurar una base de datos en Mongo... Lo podrán ver en esta clase
Saludos companeros. alguien sabe porque cuando hago una peticion GET no me rgresa nada en el array data[]?
Si no te da error, lo único posible es que no tengas info en ese array o haya un error en la consulta a mongo.
Justo! Al comienzo tu base de datos no tendrá nada de información. En la clase https://platzi.com/clases/1649-passport/21988-configuracion-de-passportjs/ , Guillermo explica cómo sube la data inicial que usa este proyecto.
O puedes agregar la data manualmente en tu base de datos de Mongo.
Aquí comienza todo lo bueno del curso!! Usare mi path del proyecto con node!
Recuerda, si bajaste el codigo de la api del repositorio o bien de los achivos de esta clase, debes de correr el comando:
npm install
Para poder instalar las dependencias establecidas en el package.json
Access token
El server que crearemos hará de proxy entre la SPA y el API server
La SPA se comunicará con el API server mediante una cookie con el access token del render server