Autenticación OAuth 2.0
Varias de las API de Rapid utilizan un proceso de autenticación OAuth 2.0 en lugar de la autenticación por firma.
Más información sobre la autenticación de firmas
Establecer la autorización
La autenticación OAuth 2.0 requiere un token de acceso. Para obtener un token de acceso, enviarás una solicitud a la pasarela Expedia utilizando tus credenciales de la API. Las dos partes de tus credenciales se combinarán, se codificarán en Base64 y se enviarán como cabecera Authorization
con un prefijo Basic
, e.gBasic <base64>
..
Ejemplo: Codifica tus credenciales en formato Base64
var client-id = postman.getEnvironmentVariable("client-id");
var client-secret= postman.getEnvironmentVariable("client-secret");
var base64Hash = CryptoJS.enc.Utf8.parse(client-id + ":" + client-secret);
var base64 = CryptoJS.enc.Base64.stringify(base64Hash);
postman.setEnvironmentVariable("base64",base64);
Nota: Si tu gestor de lanzamientos te ha proporcionado una clave Rapid API (api_key
) o un secreto compartido (shared_secret
), puedes utilizarlos donde el código del ejemplo pide client-id
y client-secret
, respectivamente. Son intercambiables en este uso.
Obtener un token de acceso opaco
Necesitarás un token de acceso opaco (es decir, que no contenga ninguna información sobre el usuario o el recurso) antes de poder hacer una petición a la API.
Solicitud de muestra
POST – https://api.ean.com/identity/oauth2/v3/token
Header:
Key: ‘Authorization’
Value: ‘Basic {base64}’
Muestra de respuesta
{
"access_token": "p1xy6rxahicQPUIX_Sq6a52yFnHXpX3ImaSX9sKiUI4:XM8qZiTr1HPDc8FgBE5HLvFTFdICuRFV0-l7gFWI-WU",
"token_type": "bearer",
"expires_in": 1800,
"scope": "demand-solutions.demand-api-wrappers-playground.all"
}
Utiliza el token de acceso opaco
Ahora que tienes un access_token
, puedes utilizarlo para hacer peticiones a cualquier punto final que admita OAuth 2.0, como Typeahead, Geography y Cars.
GET - https://test.ean.com/v3/regions?include=standard&language=en-US&iata_location_code=SEA
Header:
Key: 'Authorization'
Value: 'Bearer {access_token}'