Latch in Node.js... too mainstream?

Thursday, July 17, 2014

Hoy en día cuando comenzamos cualquier proyecto web que se precie existen unos pasos de obligado cumplimiento si queremos estar en la cresta de la ola y convertirnos en verdaderos "hipsters". Lejos quedaron las épocas donde se usaban frameworks que eran "mainstream", donde los hombres eran hombres (y las mujeres mujeres) y escribían sus propios drivers.
Node.js? Too mainstream

Actualmente estamos viviendo una carrera continua para ser más modernos: desde frameworks como Nodyn donde desarrollamos en ClojureScript que compila a JavaScript, se ejecuta en Node.js que compila a una... ¡JVM!, a infinidad de variedades de AngularJS (EmberJS, Backbone, Knockout, Ractive.js etc.), alternativas a Grunt como gulp.js, alternativas a Yeoman como FireShell, pasando por convertidores de JavaScript a CoffeeScript, o mejoras sobre el propio CoffeeScript como Six o Functional Reactive Programming como bacon.js.

Básicamente, estos son los pasos principales para desarrollar cualquier proyecto web en 2014:
  1. Escribe tweets sobre él.
  2. Fotografía tu espacio de trabajo y súbelo a Instagram.
  3. Elige tu framework JS.
  4. Configura tu MongoDB y Redis.
  5. Visita Reddit, meneame, forocoches y similares.
  6. ...
  7. Profit
Bromas aparte, es para nosotros un placer tener ya disponible un SDK de Latch para Node.js e incluso una estrategia de autenticación para PassportJS de Latch. Para los que no lo conozcan, Node.js es un framework creado en 2009 por Ryan Dahl y su desarrollo está patrocinado por la empresa Joyent (compañía que ofrece IaaS y PaaS, y entre cuyos inversores se encuentra Telefónica).

Su característica principal es que está basado en el famoso y potente motor V8 de JavaScript de Google y pretende ofrecer una forma fácil y segura de crear aplicaciones en JavaScript escalables y de altas prestaciones. De hecho una de las características que cuesta un poco al principio entender es su orientación mayoritaria a utilizar código asíncrono y basado en eventos, que puede llegar a ser más complejo que uno síncrono normal.

Si se comprueba el código del SDK de Latch veremos que, realmente, es muy sencillo (el código siguiente está extraído de index.js).

Primero tenemos que añadir las cabeceras HTTP que necesitan recibir nuestros servidores de Latch para saber que las peticiones son correctas:
Y luego simplemente hacemos la petición HTTP a nuestros servidores de Latch con la operación escogida.

Observando este último código podemos ver una parte de funcionamiento de Node.js donde se aprecia ese carácter asíncrono que se ha mencionado. La petición HTTP que realizamos (el "request") es a su vez una función donde podemos ver varios eventos; en la respuesta tenemos el evento "data", que significa que estamos recibiendo datos, y también el evento "end" que significa que ya hemos recibido todos los datos y pueden ser tratados si se quiere (o se podrían haber tratado según llegaban). También existe un evento "error" en la petición, en el caso de que hubiera algún problema con la petición HTTP.

Así de sencillo; con unas cuantas líneas tenemos implementado todo el SDK de Latch en Node.js. También hemos puesto a disposición de todos una estrategia de autenticación de PassportJS para que sea fácil su uso: Ahí mostramos ejemplos de cómo utilizar Latch, ya sea como:
En definitiva, el SDK de latch para Node.js se une a lista de SDK existentes como PHP, Java, Ruby, Python, C, .NET o PowerShell para que se puedan utilizar en todas las aplicaciones.

David Barroso
david.barroso@11paths.com

News: Latch plugin for Windows is out

Wednesday, July 9, 2014

With this plugin, you may protect access to Windows Systems, as a standalone machine not connected to any other authenticator. The plugin may be downloaded directly from here or here depending on your architecture. This personal edition is for free, but it is necessary to register to get a developer account with an AppiD and Secret if you do not have one yet. Visit https://latch.elevenpaths.com and, on the upper right side, click on "Developer's area".

Here is a little how to so you can check how easy the integration is. The only prerequisites you need is Microsoft Windows version XP SP 3 or later. For a professional version of this plugin, valid for Active Directory, please check the Enterprise version here.

Installing and configuring

Unzip the program and execute latch_windows_plugin_pe_64.exe. By default, the plugin is added as a standard program under "Eleven Paths" folder, "Latch for Windows". Usually this will be: "C:\Program Files (x86)\Eleven Paths\Latch for Windows\" or "C:\Program Files\Eleven Paths\Latch for Windows\" depending on the architecture. Check the “Enable” checkbox and click "Latch Settings".


Click on "Enabled" to start using Latch for Windows


  • Complete the fields with the Application ID and Secret previously generated in developer's area, and click "OK" . Operation ID is not mandatory.

In "Latch settings", fill the fields up with Application Id and Secret key

  • Back to the main window, click on "Add" and add an username. From the Latch app on the phone, generate the token and complete the "Pairing token" box in "User options" window, and click the button "Pair" and "OK".


Add an username and generate a token with your app

Generate a pairing token for the user

  • The user is added to the list. Restart Windows, and the plugin is now ready to be used.




 Using Latch 

From now on, the user may lock his Windows account in his smartphone so no one will be able to log in even if the password is known.


Lock or unlock the account from Latch app


Even if the password is correct, the user will not be able to log in until the latch is unlocked