Anuncios

Bienvenidos sean a este post, hoy comenzaremos un nuevo tema.

Anuncios

Hasta el post anterior hemos modificado nuestra aplicacion con la capacidad de almacenar informacion de distintas formas, a partir de este post agregaremos la capacidad de poder autenticar un usuario y si bien podemos hacerlo de una manera muy simple mediante la aplicacion de models, routes y views en nuestra aplicacion pero esto en la vida real no es asi y aqui entra en escena otro tema.

Anuncios

Un elemento que debemos considerar como de alto valor es a la informacion de identidad del usuario y a su vez la necesidad de proveer una autenticacion de usuario robusta y confiable, porque algo que sucede habitualmente es la intrusion a los sititos webs para robar lo que mencionamos anteriormente como son las identidades de los usuarios, por esta razon debemos implementar lo que mencionamos en el titulo como es un microservicio.

Anuncios
Anuncios

Si bien los microservicios no son la panacea, dado que no deberiamos intentar que toda aplicacion encaje en el microservicio, pero si lo miramos mas atentamente este encaja en la filosofia de Unix de herramientas pequeñas, donde cada una hace una sola cosa pero bien y esta a su vez nos permite mezclarlas, combinarlas e implementarlas en herramientas mas grandes, esto se denomina como componibilidad, y si bien nos puede resultar util para crear herramientas de software, esto funcionaria con software comercial como Photoshop u OpenOffice?

Anuncios

Gracias a esta filosofia es el por que los microservicios son tan populares hoy en dia, al ser mas agiles si son bien usados esto nos guiara para crear un altamente seguro deployment de microservicio, pero para lograr esto necesitamos saber de dos implicaciones las cuales son:

  • Crearemos nuestro propio framework de aplicacion REST?
  • Crearemos nuestro propio framework de autenticacion de usuario?
Anuncios

Para estos y otros casos siempre es mas recomendable usar librerias existentes porque usualmente vienen con mucho trabajo ya realizado y con muchos bugs ya solucionados, un ejemplo es sequelize que utilizamos para ORM en el post anterior, por lo tanto para poder implementar la autenticacion en nuestra aplicacion vamos a utilizar dos librerias:

  • Passport, para el login del usuario
  • Restify, este es un framework de aplicacion REST
Anuncios
Anuncios

Para poder probar el service usaremos a una herramienta de linea de comandos, la cual sera la encargada de administrar la informacion de los usuarios, por el momento no implementarremos una interfaz de usuarios para administrar la informacion en la aplicacion, y por lo tanto confiaremos en esta herramienta y como efecto secundario obtendremos la herramienta de testeo, pero una vez que este funcionando correctamente veremos como modificar a la aplicacion para ver la informacion del usuario desde el servicio y a su vez manejando la autenticacion mediante Passport.

Anuncios

Por el momento no necesitaremos nuestra aplicacion dado que trabajaremos por fuera de este, con esto comentado crearemos un nuevo directorio con el nombre de users, una vez creado nuestro siguiente paso sera ejecutar el siguiente comando dentro de este directorio:

$ npm init
Anuncios

Este es el comanddo que se encargara de crear nuestro archivo package.json y para ello nos hara unas preguntas, en general no es importante lo que pongamos pero si debemos completar el campo name con el valor user-auth-server, una vez contestada todas las preguntas nos creara el archivo y lo siguiente sera instalar los modulos necesarios, para ello debemos ejecutar una serie de comandos:

$ npm install debug@^4.1.x fs-extra@^9.x commander@^5.x --save
Anuncios

En este caso instalamos unos viejos conocidos de posts anteriores y uno nuevo, el cual se encargara de la parte de linea de comandos pero de esto hablaremos mas adelante, nuestro siguiente comaando sera:

$ npm install restify@^8.5.x restify-clients@^2.6.x js-yaml@^3.14.x --save
Anuncios

Estos modulos se encargaran de la parte de REST que comentamos anteriormente, por ultimo debemos instalar los siguiente modulos mediante el siguiente comando:

$ npm install sequelize@^6.x sqlite3@^5.x cross-env@7.x --save
Anuncios

Con estos instalaremos tres modulos muy conocidos para nosotros, como son el encargado de poder trabajar con la base sqlite3 directamente como vimos en el post anterior, la base y otro para el entorno de desarrollo, con esto ya tenemos todos los modulos necesarios para trabajar, lo cual haremos a partir del proximo post.

Anuncios

En resumen, hoy hemos visto un poco sobre los microservicios, asi como tambien hemos establecido como sera nuesta aplicacion y por ultimo hemos creado su base, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50