...
El refresh_token o token de refresco es un token que le permitirá solicitar autorización para consumir nuestros servicios web sin tener que enviar las credenciales en el mensaje.
Info |
---|
Es muy importante guardar este token bajo estrictas normas de seguridad, al igual que las credenciales de acceso. |
Cómo obtengo uno?
Para obtener un token de refresco debemos solicitar autorización, aquí explicamos cómo hacerlo.
Solicitar autorización con refresh_token
La solicitud es muy similar a la realizada en el paso anterior, se envía un POST a la misma URL: https://a.paypertic.com/auth/realms/entidades/protocol/openid-connect/token
El cuerpo del mensaje debe también debe ser de tipo x-www-form-urlencoded y en el mismo deben ir los siguientes campos: grant_type, client_id, client_secret y agreguearemos uno nuevo, refresh_token.
Debemos completar el campo refresh_token con el valor obtenido en el paso previo y cambiar el valor de grant_type por "refresh_token".
Por ejemplo:
Code Block |
---|
curl -X POST \
https://a.paypertic.com/auth/realms/entidades/protocol/openid-connect/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=refresh_token&client_id=16465308-1844-4abe-abe6-f184149ee740&client_secret=a2d03fa3-f6c4-45e5-9792-dc0d8b51a25c&refresh_token=eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJLdnB0T0R6RXdlQUp4LXZVWDc1NFJWVnFlak51NGwtTXUxUE9UbVB4Q1dBIn0.eyJqdGkiOiI1YzBjNmZiOC01NjMwLTQzZDUtYjBlMC1jNzZhNzA1ZjYxY2YiLCJleHAiOjE1NTg4MjYxMDMsIm5iZiI6MCwiaWF0IjoxNTU4ODIzMTAzLCJpc3MiOiJodHRwczovL2EucGF5cGVydGljLmNvbS9hdXRoL3JlYWxtcy9lbnRpZGFkZXMiLCJhdWQiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJzdWIiOiI0MGZlOTFkNi1mNmQ5LTRmOTMtOWZhOC05MGExYmFiMDllNmEiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiJlOThlNzYxNC0yMmY5LTRkZWYtYjViNi02ZWE0MTYxNGZlNzQiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbXSwicmVzb3VyY2VfYWNjZXNzIjp7IjE2NDY1MzA4LTE4NDQtNGFiZS1hYmU2LWYxODQxNDllZTc0MCI6eyJyb2xlcyI6WyJjYW5jZWwtc3Vic2NyaXB0aW9uIiwiY3JlYXRlLXN1YnNjcmlwdGlvbiIsImNyZWF0ZS1wYXltZW50IiwidW1hX3Byb3RlY3Rpb24iLCJjYW5jZWwtcGF5bWVudCIsInJldHJ5LXBheW1lbnQiLCJmaWxlLWV4cG9ydCIsImFkbWluaXN0cmF0b3IiLCJyZXF1ZXN0LXJlZnVuZCIsInVwZGF0ZS1wYXltZW50IiwiYXBpLXVzZXIiLCJiYXNlLXVzZXIiLCJ1cGRhdGUtc3Vic2NyaXB0aW9uIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbImFkbWluaXN0cmF0b3IiLCJiYXNlLXVzZXIiLCJ2aWV3LXByb2ZpbGUiXX19LCJzaWduYXR1cmUiOiI5OTkiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJlbnRpZGFkcHJ1ZWJhIiwiZW1haWwiOiJlbnRpZGFkcHJ1ZWJhQHBheXBlcnRpYy5jb20ifQ.CBZt2zsN3hk_I25d81Q1K_cW_-ZJAwdvfUy_f_RhYVrADf9G4RrqHdZ7M-gCWiML6n--5CH9jn2WsBQa9nxb1ySgUwqWCkdybph1F5mZKi0Q6xWNEhIMqqFbV3Qhi1Jyr87xRDn4tlD28vO6xbPASkjbuGdsRucPQMmbG3XrSZQlDPjOZRCqFNUxweDIxbRgpA-qOPIYPtE-OmcU_tMfSLfjtKWbi3z0SGxhqhWDMPjsL_l6PtxTXQgVZgwwSnHF_mDDxIjk_Q_PibQSSZNnLHlIaZ70qDYLC2bPOrq_j5lPU8WK3W9aYJTxqykAhts9hl_YSugchWFaXlpWiVAMxw&undefined=' |
Respuesta
La respuesta en este caso será igual que la recibida en la solicitud con credenciales, un código HTTP 200 con un JSON como este:
Code Block |
---|
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJLdnB0T0R6RXdlQUp4LXZVWDc1NFJWVnFlak51NGwtTXUxUE9UbVB4Q1dBIn0.eyJqdGkiOiIzMmFhMWMzMy04MTgzLTRkMjYtYWNhYS01ZjQ2MmRkYzA3MDIiLCJleHAiOjE1NTg4MjY2MzQsIm5iZiI6MCwiaWF0IjoxNTU4ODIzNjM0LCJpc3MiOiJodHRwczovL2EucGF5cGVydGljLmNvbS9hdXRoL3JlYWxtcy9lbnRpZGFkZXMiLCJhdWQiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJzdWIiOiI0MGZlOTFkNi1mNmQ5LTRmOTMtOWZhOC05MGExYmFiMDllNmEiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiJhMWI0N2M1MC03ZWU0LTQ0MzctOGFjYy04ZTVjZDRlZTQ1YzgiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbXSwicmVzb3VyY2VfYWNjZXNzIjp7IjE2NDY1MzA4LTE4NDQtNGFiZS1hYmU2LWYxODQxNDllZTc0MCI6eyJyb2xlcyI6WyJjYW5jZWwtc3Vic2NyaXB0aW9uIiwiY3JlYXRlLXN1YnNjcmlwdGlvbiIsImNyZWF0ZS1wYXltZW50IiwidW1hX3Byb3RlY3Rpb24iLCJjYW5jZWwtcGF5bWVudCIsInJldHJ5LXBheW1lbnQiLCJmaWxlLWV4cG9ydCIsImFkbWluaXN0cmF0b3IiLCJyZXF1ZXN0LXJlZnVuZCIsInVwZGF0ZS1wYXltZW50IiwiYXBpLXVzZXIiLCJiYXNlLXVzZXIiLCJ1cGRhdGUtc3Vic2NyaXB0aW9uIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbImFkbWluaXN0cmF0b3IiLCJiYXNlLXVzZXIiLCJ2aWV3LXByb2ZpbGUiXX19LCJzaWduYXR1cmUiOiI5OTkiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJlbnRpZGFkcHJ1ZWJhIiwiZW1haWwiOiJlbnRpZGFkcHJ1ZWJhQHBheXBlcnRpYy5jb20ifQ.c6nlTwgbxLiSWNOpTRuO4cCWJ5TyIispsfvfVoR4nczcW0841VMDmvzKJSX92lPdN5opo5zgCftb0Mm9tSpWe4QCtM-UkEP6PfrfNYCvg_GagZIPjbjgLVVuegO534htdEwdw4xStXqRqhb1A7MhKPtiyytUepE378FrHYeAxDPiZMjGDmg3CxhhWPuOVgP-k_RrXpF_fVYUWXeoeYeCYZU_c2uTChGFkyf5yzQkxuBIdNEp6avva69A4pLxQa7y87-ZL0xV0cwrJ68GPInkaw6-elVn-F4qf2gysoaJrjDN8F4qGnI167V5nW3VA8hOeMObRIXeN0Ut4kJ5hVQuJg",
"expires_in": 3000,
"refresh_expires_in": 1800,
"refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJLdnB0T0R6RXdlQUp4LXZVWDc1NFJWVnFlak51NGwtTXUxUE9UbVB4Q1dBIn0.eyJqdGkiOiJiMzFmZTI5ZC05YmI3LTQ2MTUtOTQzMS03YWNlYjllNjgzN2IiLCJleHAiOjE1NTg4MjU0MzQsIm5iZiI6MCwiaWF0IjoxNTU4ODIzNjM0LCJpc3MiOiJodHRwczovL2EucGF5cGVydGljLmNvbS9hdXRoL3JlYWxtcy9lbnRpZGFkZXMiLCJhdWQiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJzdWIiOiI0MGZlOTFkNi1mNmQ5LTRmOTMtOWZhOC05MGExYmFiMDllNmEiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiMTY0NjUzMDgtMTg0NC00YWJlLWFiZTYtZjE4NDE0OWVlNzQwIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYTFiNDdjNTAtN2VlNC00NDM3LThhY2MtOGU1Y2Q0ZWU0NWM4IiwicmVzb3VyY2VfYWNjZXNzIjp7IjE2NDY1MzA4LTE4NDQtNGFiZS1hYmU2LWYxODQxNDllZTc0MCI6eyJyb2xlcyI6WyJjYW5jZWwtc3Vic2NyaXB0aW9uIiwiY3JlYXRlLXN1YnNjcmlwdGlvbiIsImNyZWF0ZS1wYXltZW50IiwidW1hX3Byb3RlY3Rpb24iLCJjYW5jZWwtcGF5bWVudCIsInJldHJ5LXBheW1lbnQiLCJmaWxlLWV4cG9ydCIsImFkbWluaXN0cmF0b3IiLCJyZXF1ZXN0LXJlZnVuZCIsInVwZGF0ZS1wYXltZW50IiwiYXBpLXVzZXIiLCJiYXNlLXVzZXIiLCJ1cGRhdGUtc3Vic2NyaXB0aW9uIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbImFkbWluaXN0cmF0b3IiLCJiYXNlLXVzZXIiLCJ2aWV3LXByb2ZpbGUiXX19fQ.kwqMoqjiljCWKTRG75laf7Gzd_m7qxTMbLPtvqQdPdZrjsXeM8JAR7vR6DhjsA5mOaHYgNrJKZJafmeeeIAKEDNnp4s-6l2uD2v86SwQVzr3wC6s2-kTgt8C_Dw2j7xKGrBsYXV9nCXSO7-AFN0gY_Nn4oPxGWN8skt-9KLqMKog5BJ8Q7yLxHeHV4gYh7729tC-2sSUwHh97O3vo9Fyn_2WKG7gQfc6IS8cy4lXc6MbA1C07K5TbPhg2cG_gOj6KZ8wQHAtDpdnJ1yXFxMWiPUsUw1TvYCwA3aVIgmiyIs8qA1hkc8wDMEWNpY4hnAk5xfDQ97m8REZQQrFf3Pw4w",
"token_type": "bearer",
"not-before-policy": 1523907876,
"session_state": "a1b47c50-7ee4-4437-8acc-8e5cd4ee45c8"
} |
Si recibió una respuesta similar significa que la solicitud fue exitosa y puede utilizar access_token para consumir los servicios web de Pay per TIC.
Posibles errores
Code Block |
---|
{
"error": "invalid_grant",
"error_description": "Invalid refresh token"
} |
El servicio no recibió el campo refresh_token. Verificar que el mismo haya sido enviado en la solicitud.
Code Block |
---|
{
"error": "invalid_grant",
"error_description": "Invalid refresh token"
} |
El refresh_token enviado no es válido. Verificar que el valor sea exactamente el mismo obtenido en la solicitud de autorización. En caso de persistir el problema, solicítelo nuevamente.
Info |
---|
Si el error que recibe no se encuentra resuelto en este apartado, le rogamos comunicarse con nuestro equipo de soporte. |