node node.js rest express oauth-2.0 json-api

node.js - node - ¿Necesito Oauth2 para mi API de aplicaciones web?



api rest node js mongodb (2)

Estoy tratando de hacer que mi cerebro construya una API REST express.js / node.js. Tengo un par de preguntas...

  1. ¿NECESITO seguridad basada en token / oauth 1 o 2 para mi API si solo estoy preocupado por una aplicación web en este momento (no necesariamente aplicaciones de teléfono)

  2. ¿Hay algún recurso para aprender a construir esto desde cero? He leído literalmente las primeras 3 páginas de googlear "reposo api con autenticación de oauth2 express.js" y todavía no lo estoy entendiendo.


Es bueno que quieras hacer una API REST en el nodo. Es realmente bueno en la creación de solicitudes basadas en API.

Para tu pregunta:

1) Si está compilando solo una API básica, con simples solicitudes GET y POST, entonces quizás quiera preguntarse si los datos que está visualizando o manipulando requieren "seguridad". De lo contrario, lo más probable es que no necesite implementar OAuth.

Pero si sus datos son confidenciales, como datos de usuarios privados, entonces debe poner algún tipo de capa de seguridad en su API. Además, usar OAuth u otra seguridad basada en tokens puede ayudarlo a construir una mejor verificación de permisos en su base de usuarios.

2) Primero necesita comprender el concepto de OAuth. Una vez que tenga la idea de cómo funciona OAuth, entonces es realmente fácil de implementar en el idioma que elija. Aquí hay algunas buenas lecturas sobre cómo puede entender mejor OAuth

http://www.slideshare.net/MindfireSolutions/oauth-and-rest?qid=09a7d224-78bb-4b47-8957-3f0a0ce809a4&v=qf1&b=&from_search=3

Para obtener información más detallada sobre OAuth: http://tools.ietf.org/html/rfc6749

Nuevamente, una vez que comprenda el flujo de trabajo de OAuth, puede implementarlo fácilmente. :PAG


  1. No depende si usa su servidor REST para aplicaciones web o para cualquier otro cliente. Si el servicio está disponible en Internet, debe considerar cualquier aplicación cliente como un "enemigo". Quiero decir que no debe confiar en ninguna aplicación de cliente "confiable", siempre debe realizar la autenticación, si el cliente obtiene un recurso seguro. Es el recurso seguro, depende de su aplicación. Prefiero usar oauth2 en ambos casos. Si el recurso no está protegido, uso Client Credentials ( http://tools.ietf.org/html/rfc6749#section-1.3.4 ), si está seguro, uso Access Token ( http://tools.ietf.org/ html / rfc6749 # section-1.4 ). Le permite mantener la misma tecnología y cambiar fácilmente las cosas en el futuro, si es necesario. Basado en mi experiencia personal, creé el módulo oauthifizer ( https://github.com/vedi/oauthifizer ). En realidad, es un envoltorio de pasaporte.js, que lo hace más amigable en esos casos particulares.

  2. Puedes echar un vistazo a este artículo: http://aleksandrov.ws/2013/09/12/restful-api-with-nodejs-plus-mongodb/ . De nuevo, puede considerar probar restifizer ( https://github.com/vedi/restifizer ) - otro módulo, que le permite crear servicios RESTful significativamente más rápido. Y hay un breve ejemplo de ello: https://github.com/vedi/restifizer-example

Espero que ayude