Login

Todas las llamadas al Servicio de APIs deben de estar autentificadas a través de un token JWT ( JSON Web Tokens ).

Como obtener los Tokens JWT

Los tokens JWT pueden ser obtenidos a través de un API Call a login usando usuario y clave o con un token de autentificación creado previamente. Estos tokens de autentifcación deben de ser creados previamente en el dashboard, o pueden ser creados a través del API.

Endpoints

Login

Como mencionamos, se puede ingresar al sistema de dos maneras. Usando el login con usuario y clave, o a través de los tokens de autentificación. Sin embargo, el login usando usuario y clave tiene un tiempo de vida de 24 horas, mientras que el usando tokens es válido por el periodo determinado por el usuario.

post
/login

https://api.pgf.cl/login
Este endpoint retorna un token valido por 24 horas con el que se pueden realizar las llamadas al resto de los endpoints del API. Sin este token no se pueden acceder a los endpoints. Los parámetros deben ser enviados a través de un JSON.
Request
Response
Query Parameters
username
required
string
Nombre del usuario o email en la plataforma
password
required
string
Password del usuario en la plataforma
200: OK
El token fue obtenido de manera correcta.
{
"access_token_jwt": "TU JWT TOKEN",
"expires_in": 86400,
"token_type": "Bearer"
}
400: Bad Request
No se pudo validar la combinación email/username con la clave.
{
"error": "Wrong email or password."
}

Ejemplos

Ejemplo de conexión usando CURL
curl -X POST \
https://api.pgf.cl/login \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-d '{
"username": "MIMAILOUSUARIO",
"password" : "MICLAVE"
}'
Ejemplo usando Javascript.
var request = require("request");
var options = { method: 'POST',
url: 'https://api.pgf.cl/login',
headers:
{ 'Cache-Control': 'no-cache',
'Content-Type': 'application/json' },
body:
{ username: 'MIMAILOUSUARIO',
password: 'MICLAVE' },
json: true };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
Ejemplo usando PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.pgf.cl/login",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\n\t\"username\": \"MIMAILOUSUARIO\",\n\t\"password\" : \"MICLAVE \"\n}",
CURLOPT_HTTPHEADER => array(
"Cache-Control: no-cache",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}

post
/loginToken

https://api.pgf.cl/loginToken
Este tipo de login retorna un token JWT con el que se pueden usar las llamadas por un periodo determinado por el usuario. En caso de no ser especificado será usado por un año.
Request
Response
Headers
Authorization
required
string
Token asociado a tu cuenta (Bearer)
Body Parameters
expDate
optional
number
Fecha en UNIX TIMESTAMP hasta cuando será valido el token JWT. De no ser especificado el token durará un año.
200: OK
El caso de éxito responde el token que ocuparemos y en cuanto tiempo expirará.
{
"access_token_jwt": "TU JWT TOKEN",
"expires_in": 31536000,
"token_type": "Bearer"
}
400: Bad Request
Si el token usado en la autorización no es válido.
{
"error": "Invalid Authorization Header"
}
403: Forbidden
Si el token no está habilitado o si está expirado.
{
"error": "Not a valid or expired token"
}

Ejemplos

Curl
curl -X POST \
https://api.pgf.cl/loginToken \
-H 'Authorization: Bearer TUACCESSTOKEN' \
-H 'Cache-Control: no-cache'
JavaScript
var request = require("request");
var options = { method: 'POST',
url: 'https://api.pgf.cl/loginToken',
headers:
{ 'Cache-Control': 'no-cache',
Authorization: 'Bearer TUACCESSTOKEN' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.pgf.cl/loginToken",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer e0a7eefa-de1a-4507-82f5-eb9ec482fe2a",
"Cache-Control: no-cache",
"Postman-Token: 585cef54-e002-4791-8bd2-b9ce58d1cf6b"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}