usando tutorial node español ejemplo cómo crear construir basada autenticacion node.js rest authentication express oauth

node.js - tutorial - Estrategia de autenticación para la API REST y la aplicación móvil



rest api tutorial español (3)

Estoy creando un servidor REST API con Node.js y Express + MongoDB. Esta API tendrá diferentes clientes móviles (iOS, Android) y posiblemente una aplicación web más adelante. Necesito que los usuarios inicien sesión para poder realizar algunas solicitudes de API. No hay aplicaciones de terceros con las que me quiero conectar (no Facebook, Google, etc.). Tampoco quiero obligar a los usuarios a visitar una página web ni nada por el estilo para que puedan iniciar sesión.

Por lo que he visto en mis numerosas búsquedas en SO, el mejor enfoque sería permitir a los usuarios iniciar sesión con credenciales completas una vez, enviarles un token a cambio y usar ese token para verificar futuras solicitudes hasta que caduque.

Sin embargo, no estoy seguro de cómo implementar esto. Estoy muy confundido con todas las diferentes estrategias. ¿Se hace esto con autenticación básica a través de HTTPS, con OAuth, OAuth 2.0, ...? Simplemente no sé qué usar. Además, realmente no quiero reinventar la rueda aquí, no porque soy flojo, sino principalmente por cuestiones de seguridad. ¿Hay alguna biblioteca que pueda usar para implementar esto? He oído hablar de Passport, pero no pude entender si esto es factible o no. Esto suena como una cosa tan genérica que estoy seguro de que hay una solución simple por ahí.

¡Gracias!



Siento que necesita configurar un proceso de Autenticación basada en token en su servidor, para que pueda realizar solicitudes de diferentes tipos de clientes (Android, iOS, Web, etc.). Desafortunadamente, la documentación de Passport (y los tutoriales basados ​​en Passport) parece estar dirigida únicamente a las "aplicaciones web", por lo que no creo que deba usarla para esos fines.

Hice algo similar siguiendo este gran tutorial: http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543

La parte del cliente en este tutorial está basada en AngularJS, pero puede aplicar fácilmente los mismos principios en un cliente móvil (solo se trata de hacer que las solicitudes HTTP, incluido un token, se recuperen cuando publique en "/ iniciar sesión" o "/ autenticar") .

¡Buena suerte!


Ahora puede usar Passport.js con JWT (JSON Web Tokens) con Passport-JWT . Es bastante fácil de usar.

Una vez que el usuario inicia sesión, envía un token al usuario. El token contiene datos sobre el usuario, como una identificación (codificada, por supuesto). En las solicitudes posteriores (al menos cuando se requiere autenticación), asegúrese de que el cliente envíe el token. En el servidor, puede ver quién envió la solicitud (y, por ejemplo, verificar la autorización del usuario), simplemente mirando el token. Para obtener más información sobre cómo funciona JWT mira esto .

Hay diferentes formas de enviar el token. Solo eche un vistazo a los documentos y estará claro. Si no, esto también me ayudó.