Bien como saben hace poco estuve escribiendo acerca de Elgg, y prometi una segunda entrega acerca de la autenticacion de metodos con verificacion de usuario, la cual es similar a la vista en el post anterior que es con API. Bien Pues resulta que la mayor parte de la informacion la encontraran en la documentacion de Elgg sobre servicios web, aunque creo que se limitaron a una explicacion muy superficial de como hacer uso de los servicios web con autenticacion de usuario.Elgg trae por defecto la autenticacion HMAC que no es mas que la manera en como Elgg verificara las credenciales proporcionadas y retornara una respuesta a partir de ello (key), claro siempre se tiene una publica y una privada y tienen un tiempo de vida determinado por Elgg. Claro existen plugins de terceros que permiten otro tipo de verificacion como OAuth (muy popular en mobiles ) y Amazon S3 (Este ultimo nunca lo he usado!! :S).
Publicando un metodo User Auth
Pues no es nada del otro mundo usaremos el mismo metodo de la vez anterior
Como vez lo unico diferente es la publicaciondel metodo.
Usar auth.gettokken
Antes de empezar a hacer nuestro metodo hay que saber usar este metodo el cual esta publicado siempre y puedes verificarlo con http://my.elgg.site/services/api/rest/xml/?method=system.api.list
Alli deberia aparecer auth.gettoken, solo hay un detalle es necesario hacerla llamada "POST" para utilizarlo. Este metodo devolvera la llave cifrada que podemos usar para llamar a servicios web que requieran verificacion de usuario. Para efectuar con exito una peticion POST pueden usar el siguiente codigo que esta hecho en Java utilizando HTTPClient (pero todos los lenguajes respetables tienen llamadas a peticiones HTTP para servicios web RESTful):
La linea 26 imprimira la llave asignada a esa sesion de usuario se veria algo asi:
Y la llave como la uso!!?? Bien la llave se usa similar al API KEY de la autenticacion en el articulo anterior pero en vez de colocar el parametro "api_key" lo cambiaremos por "auth_token" asi nuestra peticion ahora sera.
Bibliografia:
Documentacion de Elgg
HttpClient Tutorial
Marcus Povey Articulo sobre REST-like-API Elgg
La linea 26 imprimira la llave asignada a esa sesion de usuario se veria algo asi:
Y la llave como la uso!!?? Bien la llave se usa similar al API KEY de la autenticacion en el articulo anterior pero en vez de colocar el parametro "api_key" lo cambiaremos por "auth_token" asi nuestra peticion ahora sera.
http://localhost/elgg/services/api/rest/xml/?method=test.secureMethod¶metro=52&auth_token=4481b5c51c205b1a5e2e64c8fc5f7321
Eso es todo por el momento, espero haya servido el pequeño tutorial.Bibliografia:
Documentacion de Elgg
HttpClient Tutorial
Marcus Povey Articulo sobre REST-like-API Elgg

