Showing posts with label friends. Show all posts
Showing posts with label friends. Show all posts

Thursday, September 21, 2017

Friends tenemos un nuevo SDK de Latch para Go!

Friends tenemos un nuevo SDK de Latch para Go!


Tanto mi gran amigo Rafael Troncoso (@tuxotron) como yo, somos dos usuarios de Latch y llev�bamos mucho tiempo queriendo implementarlo a nivel de desarrollador en alg�n proyecto propio. Aunque hemos hecho algunas pruebas para integrarlo en Raspberry Pi y otros proyectos relacionados con el IoT, finalmente nos hemos decidido por un SDK en uno de los lenguajes que mayor popularidad est� ganando en los �ltimos meses. Hablamos del lenguaje Go, desarrollado por Google. Antes de nada, indicar que esta versi�n de SDK Latch para Go no es oficial de ElevenPaths.

Figura 1: Friends, tenemos un nuevo SDK de Latch para Go!

Rafael ha creado una primera versi�n de este SDK y hemos estado realizando varias pruebas sobre �l para comprobar que las funciones b�sicas funcionan correctamente. Pero antes de entrar en materia queremos explicar por qu� nos hemos decidido por el lenguaje Go. Primero porque si el legendario Ken Thompson, uno de los padres del Lenguaje C, es uno de los desarrolladores y por lo tanto hay que prestarle mucha atenci�n. De hecho, otra de sus ventajas es su sintaxis, la cual es bastante parecida al Lenguaje C por lo que no ser� dif�cil acercarte a Go si tienes conocimientos de este lenguaje. Adem�s, ha heredado la mayor�a de las caracter�sticas (y mejorando otras) que han hecho del Lenguaje C una referencia en el sector.

Figura 2: SDK de Latch para Go (no oficial)

Antes de comenzar, suponemos que tienes ya una cuenta de Latch como desarrollador. Tambi�n ser� necesario que tengas instalado Go para el sistema operativo que est�s utilizando Windows, Linux o macOS. El �ltimo paso es tener instalado Latch para tu Smartphone. Esto puedes hacerlo directamente desde la tienda de la plataforma que utilices o desde este enlace.

Utilizar el SDK de Latch para Go

Nosotros haremos las pruebas desde un ordenador con Linux. Utiliza el siguiente comando para instalar el SDK Latch para Go:
# go get github.com/tuxotron//latch-sdk-go
Finalmente estar� instalado en la siguiente ruta:
$GOPATH/src/github.com/tuxotron/latch-sdk-go/
Es fundamental obtener los valores Application ID y Secret, desde la consola de administraci�n web de Latch, en el men� Manage Applications. Sobre la aplicaci�n que queramos proteger pulsamos la opci�n Edit, tal y como se muestra a continuaci�n:

Figura 3: Men� de Latch donde podemos ver el ApplicationID y el Secret

En nuestro ejemplo, obtenemos los siguientes valores:
� Application ID: 7p9hrnmiWLf8EpbNcPFNfkaCrzPjW3kzTt2rrW9c
� Secret: YkmAJAX2W4v4JU9jP3Ce

Ahora procederemos a hacer algunas de las llamadas b�sicas de Latch utilizando el SDK de Latch para Go. Utilizaremos un fichero que hemos llamado main.go que puedes ver a continuaci�n:

Figura 4: Fichero main.go en el SDK de Latch para Go

El c�digo de este programa crear� una instancia en Latch de nuestro servicio. A�adiremos en Latch desde la aplicaci�n del Smartphone, un nuevo servicio para poder asociar nuestra aplicaci�n. Luego lo pareamos con la opci�n Pair with Latch:

Figura 5: Opci�n de Latch donde podemos activa "Pair with Latch"

Esta opci�n nos devolver� un token temporal de pareado de 6 d�gitos.

Figura 6: Token Temporal de Pareado devuelto por Latch

Ahora tendremos que a�adir la llamada para realizar el pareo en nuestro c�digo anterior. El c�digo a�adido son las l�neas 3,12,13,14,15,16,17,18 y 19 en el fichero main.go.

Figura 7: Configuraci�n de pareado con Latch

La l�nea 12 realiza una llamada a la funci�n pair con el token recibido en la aplicaci�n m�vil. El resto del c�digo se encarga de imprimir por pantalla el resultado de la llamada. Finalmente, cuando ejecutemos go run main.go devolver� el accountId, que ser� parecido al que mostramos a continuaci�n:
OK {"accountId":"zZhqg7H9pabaZDDJg4y2HcFWCjZtDm6yXBg7QDdrKNjBJfreirxzjY74R2dtxbta"}
Este valor de accountId es necesario para comprobar el estado de nuestra aplicaci�n desde Latch. Una vez realizado el pareo no necesitaremos m�s la opci�n PairWithToken(...) as� que la comentamos en el c�digo (l�nea 12) y a�adimos una nueva l�nea para comprobar el estado de Latch status(...) que puedes ver en la l�nea 13:

Figura 8: Accediendo al estado de un accountID en Latch

La llamada status recibe tres par�metros, accountId, el cual recibimos cuando hicimos el pareado y los otros dos son valores booleanos (ver documentaci�n Latch). Si ejecutamos nuestro c�digo ahora y no tenemos nuestra aplicaci�n bloqueada con Latch tendr�amos que ver una salida parecida a la siguiente:
OK{"operations":{"WcqfYQErkANrk7wfijgv":{"status":"on"}}}
Recibimos el ID de la operaci�n y el estado de Latch, que en este caso est� activada, es decir, no bloqueada.

Figura 9: Activaci�n de Latch sobre nuestro servicio

Cuando bloqueamos nuestra aplicaci�n desde Latch, obtendremos una salida similar a la siguiente:
OK{"operations":{"WcqfYQErkANrk7wfijgv":{"status":"off"}}}
La aplicaci�n est� bloqueada por Latch y como hemos incluido el par�metro silent con el valor falso, recibiremos una alerta en nuestro smartphone como esta:

Figura 10: Aviso de alerta de acceso a Latch

A modo de resumen, estos son los pasos que tenemos que realizar para poder proteger un servicio Latch:
1. Obtener Applicaction ID y Secret 
2. PairWithToken con el token obtenido en la aplicaci�n m�vil. 
3. Llamar a la funci�n status con el accountId, y comprobamos si el estado (status) est� a ON (permitido) , si el estado est� a OFF evitamos la ejecuci�n de la operaci�n y notificamos al usuario con el alg�n tipo de error.
Finalmente, para quitar el pareo de la aplicaci�n podemos usar la funci�n Unpair, y le pasamos como par�metro el accountId:

Figura 11: Opci�n de Unpair en linea 12

Recibiremos una alerta en el m�vil indicando que todo ha ido bien:

Figura 12: Alerta recibida una vez hemos hecho el Unpair del servicio

Esperamos que os haya gustado esta primera introducci�n al SDK Latch en Go. Seguro que haremos m�s pruebas e implementaremos m�s funciones que compartiremos con todos vosotros.

Autores: Fran Ram�rez (@cyberhadesblog�), Investigador de ElevenPaths y escritor del libro �Microhistorias: an�cdotas y curiosidades de la Inform�tica� y  Rafael Troncoso (@tuxotron),  co-fundador del blog CyberHades y escritor del libro �Microhistorias: an�cdotas y curiosidades de la Inform�tica�


download file now

Read more »