Módulo de autenticación, autorización y registro
Última modificación: 10/03/2021
Autenticación
Para poder hacer uso del API de Bookker B2B, las aplicaciones deberán utilizar el siguiente flujo:
- El cliente se autentica, mediante usuario y contraseña, haciendo una petición al servidor del API.
- Una vez que el servidor verifica la identidad del cliente, se genera un token de acceso (JWT) que es enviado al cliente.
- El cliente usa ese token para acceder a los recursos protegidos del API.
- En cada petición, el servidor desencripta el token y comprueba si el cliente tiene permisos para acceder al recurso.

Autenticación
Intenta autenticar al usuario mediante username / email y contraseña.
Request
HTTP request
POST /api/v1/login
Headers
| Header | Value | Required |
|---|---|---|
| Content-Type | application/json | true |
Body
| Property | Type | Description | Required |
|---|---|---|---|
| username | String | El alias o el email del usuario. | true |
| password | String | La contraseña del usuario. | true |
Response
Si se ha conseguido autenticar correctamente al usuario, se devuelve un código 200 con la información básica del usuario y el token de autorización en el cuerpo de la respuesta.
HTTP/1.1 200 OK
Content-type: application/json
{
"token": "eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MTIifQ.eyJpc3MiOiJzZWN1cmUtYXBpIiwiYXVkIjoic2VjdXJlLWFwcCIsInN1YiI6IjgwMzkwMmRiNmM5MDQ5ODdhNjM2MWMzZTkxYzZlZmExIiwiZXhwIjoxNTg5NTI3Mzk3LCJyb2wiOlsiMWRmZGUwNTktZGE2NS00OWM5LThkYjMtZGNjYzRmMzI5MmU0Il19.4nI2H0NHg3TNJMD7S7aYRLSV2FYCapPYAWKBqALafw5LzUooNli3VMHDzgeIq1sPQuaMlUyRHp-aZFVD7J_Xyw"
}
Refresco Autenticación
Intenta refrescar el token del usuario. Solo se podrá refrescar con éxito si el token anterior no ha expirado.
Todos los tokens se pueden utilizar hasta su fecha de expiración, pudiendo hacer uso de más de uno de ellos.
Request
HTTP request
GET /api/v1/login/refresh
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MT… | true |
| user-access-token | aZJ0eXBl0sdSldUIiwiYKsnIjoiSFM1MT… | false |
Response
Si se ha conseguido refrescar el token de autorización correctamente se devuelve un código 200 con la información del nuevo token de autorización en el cuerpo de la respuesta.
HTTP/1.1 200 OK
Content-type: application/json
{
"token": "eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MTIifQ.eyJpc3MiOiJzZWN1cmUtYXBpIiwiYXVkIjoic2VjdXJlLWFwcCIsInN1YiI6InRlc3QxNTU5ODE4NjkyMzUxIiwiZXhwIjoxNTYwNjgyOTAwLCJyb2wiOlsiTU9DS19NT0JJTEVfUk9MRTE1NTk4MTg3MTM0NDciXX0.GaCyT8AyFWb_iGFk8xBNrsgfNtPU0BxFvlEgCDsvC5HZ0TEoQj-OzLY99O0sLZGBGUHT9EJTZX4gIzIwz4SMDQ"
}
Autorización
En todas las peticiones que requieran autorización habrá que enviar el token de autenticación como un header de la propia petición de la siguiente manera:
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MT… | true |
Ejemplo:
GET http://localhost:9010/api/v1/users HTTP/1.1
authorization: Bearer eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MTIifQ.eyJpc3MiOiJzZWN1cmUtYXBpIiwiYXVkIjoic2VjdXJlLWFwcCIsInN1YiI6IkFpdG9yR0MiLCJleHAiOjE1NTk4MTExNTEsInJvbCI6W119.MRBm5ESWLaIj_jTURCgRkrg3UUJv1gMbwmfGxtcpurlXif9PtmcRMvon4qKYA1V8_LeMg0oJl7ZOohPvk_URmA