Presidencia de la Nación

Tokens JWT


Si pertenecés a un organismo de la Administración Pública Nacional y querés incrementar la cuota de uso de la API de Georef, podés pedir un token y autenticarte utilizando JWT.

Para generar un token JWT, se requieren dos elementos: una key y un secret generados para el uso con la API.

Una vez obtenidos ambos elementos, se puede generar un token JWT utilizando, por ejemplo, Python o Node.js. A continuación, se muestran ejemplos utilizando los siguientes valores demostrativos:

  • key = YXNkc2Rhc2RmYXNkZmFzZmRhc2RmYXNk
  • secret = dnVvODY4Yzc2bzhzNzZqOG83czY4b2Nq

El algoritmo de autentificación de mensajes con hash utilizado es HMAC-SHA256 (HS256).

Python

Utilizando la librería pyjwt:


$ pip install pyjwt $ python >>> import jwt >>> key = 'YXNkc2Rhc2RmYXNkZmFzZmRhc2RmYXNk' >>> message = { 'iss': key } >>> secret = 'dnVvODY4Yzc2bzhzNzZqOG83czY4b2Nq' >>> token_bytes = jwt.encode(message, secret, algorithm='HS256') >>> token = token_bytes.decode() >>> token 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJZWE5rYzJSaGMyUm1ZWE5rWm1GelptUmhjMlJtWVhOayJ9.P4leoe9q_H3lmIlnpZuVFSt7ORgLhLfQ3JN_3FMexSo'

Finalmente, para consumir la API de Georef, adjuntar el token generado en las cabeceras HTTP. A continuación, se muestra un ejemplo utilizando la librería requests:


>>> import requests >>> headers = { 'Authorization': 'Bearer {}'.format(token) } >>> resp = requests.get('https://apis.datos.gob.ar/georef/api/provincias', headers=headers) >>> resp.json() { 'provincias': [ { ... } ] }

Node.js

Utilizando la librería jswonwebtoken:


$ npm install jsonwebtoken $ node > var jwt = require('jsonwebtoken') > var payload = { 'iss': 'YXNkc2Rhc2RmYXNkZmFzZmRhc2RmYXNk' } > var secret = 'dnVvODY4Yzc2bzhzNzZqOG83czY4b2Nq' > var token = jwt.sign(payload, secret, { 'noTimestamp': true }) > token 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJZWE5rYzJSaGMyUm1ZWE5rWm1GelptUmhjMlJtWVhOayJ9.P4leoe9q_H3lmIlnpZuVFSt7ORgLhLfQ3JN_3FMexSo'

Finalmente, para consumir la API de Georef, adjuntar el token generado en las cabeceras HTTP:


> var http = require('http') > http.get({ 'hostname': 'apis.datos.gob.ar', 'path': '/georef/api/provincias', 'headers': { 'authorization': 'Bearer ' + token } }, function(response) { ... })
Activar: 
0
Template: 
caritas3
Scroll hacia arriba