Les codes d’autorisation constituent des jetons à usage unique. Lorsqu’ils sont utilisés pour récupérer un jeton de type access_token, ils permettent d’obtenir un jeton de type refresh_token pouvant être employé pour récupérer le prochain jeton de type access_token. La section suivante vous indique comment récupérer votre premier jeton refresh_token.
Requête initiale
La première fois que vous cherchez à obtenir un jeton, vous devez disposer des éléments suivants :
- du profil de sécurité de l’application client_id
- du profil de sécurité de l’application client_secret
- URI enregistré de l’application redirect_uri
- Code d’autorisation de l’application précédemment créé
- Type grant_type à utiliser, devant correspondre au code
Pour obtenir un jeton :
- Saisissez l’identifiant client_id, client_secret, le code d’autorisation, et le grant_type en tant que données de formulaire encodées par URL.
- Effectuez une requête HTTP.
Commande curl Commande Curl permettant de générer des jetons à partir du code authorization_code est illustrée par l’exemple suivant.curl --request POST \ --url https://api.amazon.com/auth/o2/token \ --header 'content-type: application/x-www-form-urlencoded' \ --data 'grant_type=authorization_code' \ --data 'code=ANxuOkcwmzUHvimjMTAX' --data 'client_id=amzn1.application-oa2-client.20534a91be57487e9c3547dada8a7394' \ --data 'client_secret=c007c411c9657dde807a11a96a3cfd8a2972f9599ac28de241675832f63cac05' \ --data 'redirect_uri=https://development.amazon.com/ap/ibatest'
Deux jetons sont générés, un jeton access_token et un jeton refresh_token.{ "access_token": "Atza|IwEBIPSxTCdGGC-xL-ywFib_lJfg-D7d435Jw739GWa3xy6dHJxXqy2EwddQkIchiDNiqa4kFJ4iTv_ WcFCPoQ6qNvEIxlwDU9yxadZon9-fWh42Qt-hqB8kL6X1iFaDVsBjt3DSgfbe5DYOn_NCOF_r0Z0c3ArA1ft1g082lKYDC4Lo_qYy VhRO0yn3cMEjzvgmiSJREtAg69Ey_7bfbqFycIv4IrPd45RIEnrHR1ovac66U8zeqXMjV6MLE2I-Q_34BmSM3WfdT8DUFsoRtsoZi rFAXPZT5BLrUl4iVUsNF3hr8w4-JIw63VG8KpNlg8jsgB8VQUSJe-vhQfGvukIKAkeQ-iReWSd-_8f2XfhZlhNuBBNu0LnpeCPdu7 e7zJqzgZC3_oDE8wNDd89Z4qHn3fr7", "refresh_token": "Atzr|IwEBIDxSD_pLhlNA0Jn8UbGDhcsxEt70JizgXXXaITEwstKSsLO007_pNcQ13H6umgVcLvPiXthZL4 UJnHv8tYAqbVVnH7CUanaA4MDwY9JMf-CVHltiDYm7uv6lTuBIVe5IgXPvyctGyuu8SQxPtKEgejF0Iyoy_7uWZ8l185XU426Bw1U E7CfifWl8NE2a13WmBFZJTnvjj2hkwCEnTAvUDRYHW7inp7REnKMU66EeX36Vv5ZrPl2YAgZe3xwm2bFsC5v8ytY_sBX6nN79AJ7j -wYY4EehyCFBgYNqXLLUaGPA4IBFRw3UW5XwR2EJ-VSloGucgINgzIS9tCVK4qg_hkU-XTnuEFOm-P9M4bAvL5oGXQ", "token_type": "bearer", "expires_in": 3600 }
Demandes de jetons standard
Chaque appel suivant visant à obtenir un nouveau jeton éphémère doit induire un type grant_type de jeton refresh_token et inclure le jeton refresh_token. Votre application vous invite à réaliser les étapes ci-dessous chaque fois qu’elle initialise une nouvelle session. Cette procédure utilise le refresh_token en combinaison avec les secrets existants pour émettre un nouveau jeton access_token.
- Saisissez l’identifiant client_id, client_secret, redirect_uri, authorization_code, et le type grant_type sous forme de données encodées.
Effectuez une requête HTTP à l’aide de l’outil curl ou de l’implémentation de référence.
Utilisez la commande curl suivante pour générer des jetons d’accès à l’aide d’un jeton d’actualisation :curl --request POST \ --url https://api.amazon.com/auth/o2/token \ --header 'content-type: application/x-www-form-urlencoded' \ --data 'grant_type=refresh_token' \ --data 'client_id=amzn1.application-oa2-client.20534a91be57487e9c3547dada8a7394' \ --data 'client_secret=c007c411c9657dde807a11a96a3cfd8a2972f9599ac28de241675832f63cac05' \ --data 'refresh_token=Atzr|IwEBIPw8sQi6vSq67a0QeWDjRp4DJusAHG9kg-707e9PVbCbFTD3mU3H9ztkXppkSfeIgGsq d4zDnwr5y5hbFZvqyEQPsPRPNspT4cyWNhS6teaQsgyQa6CDTEejwYksDC4rQCi77p67zAkVzh6vHAuVJwkmaXH8IFFouRvR5gp qrffASpNv1eZwLTyqJzMNyU2CNJrIgurqJmByJN3u-smxLkshqMej0anoykw8qyNTmNxrzYRZJR2KdZLH6Kcw9mO41zHJKVWKi_ My4_bevVGd8viCGUeXeaRgOONI-GtGoQOZV7NwERLFkjT8Imw_yu4AeZ9lXEomFTy61RhieWvpxJmHNDb6MRuJcywFhx-h2fw1I jxP-W3J6HuVME69UMdapNkgk3bfgpWCsfkxDP3Qq1MddDkYvoTuJPAtqq12X4hvmlM1OZWsy8uG0Pckb9S3D1rh4g06pWcx-VaW GXQr2hbP58DWWQYIbLW-kZHD0eakoqNdrOtj56IMZZTz7RAPdmHiiHScDkgu6PyiBFBDBV7V'Deux jetons sont générés, un jeton access_token et un jeton refresh_token.
{ "access_token": "Atza|IwEBIPSxTCdGGC-xL-ywFib_lJfg-D7d435Jw739GWa3xy6dHJxXqy2EwddQkIchiDNiqa4kFJ4iTv_ WcFCPoQ6qNvEIxlwDU9yxadZon9-fWh42Qt-hqB8kL6X1iFaDVsBjt3DSgfbe5DYOn_NCOF_r0Z0c3ArA1ft1g082lKYDC4Lo_qYy VhRO0yn3cMEjzvgmiSJREtAg69Ey_7bfbqFycIv4IrPd45RIEnrHR1ovac66U8zeqXMjV6MLE2I-Q_34BmSM3WfdT8DUFsoRtsoZi rFAXPZT5BLrUl4iVUsNF3hr8w4-JIw63VG8KpNlg8jsgB8VQUSJe-vhQfGvukIKAkeQ-iReWSd-_8f2XfhZlhNuBBNu0LnpeCPdu7 e7zJqzgZC3_oDE8wNDd89Z4qHn3fr7", "refresh_token": "Atzr|IwEBIDxSD_pLhlNA0Jn8UbGDhcsxEt70JizgXXXaITEwstKSsLO007_pNcQ13H6umgVcLvPiXthZL4 UJnHv8tYAqbVVnH7CUanaA4MDwY9JMf-CVHltiDYm7uv6lTuBIVe5IgXPvyctGyuu8SQxPtKEgejF0Iyoy_7uWZ8l185XU426Bw1U E7CfifWl8NE2a13WmBFZJTnvjj2hkwCEnTAvUDRYHW7inp7REnKMU66EeX36Vv5ZrPl2YAgZe3xwm2bFsC5v8ytY_sBX6nN79AJ7j -wYY4EehyCFBgYNqXLLUaGPA4IBFRw3UW5XwR2EJ-VSloGucgINgzIS9tCVK4qg_hkU-XTnuEFOm-P9M4bAvL5oGXQ", "token_type": "bearer", "expires_in": 3600 }
Jetons d’accès et jetons d’actualisation
access_token : ce jeton éphémère est inclus aux requêtes HTTP s’effectuant en direction de l’API. Même s’il est éphémère, il s’agit d’une information confidentielle qui ne doit pas être communiquée à d’autres personnes. De nouveaux jetons access_tokens peuvent facilement être générés.
refresh_token : ce jeton, dont la durée de validité est indéfinie, est utilisé par le client pour demander tous les jetons suivants. Il s’agit également d’une information confidentielle. En combinant l’identifiant client_id et le secret client_secret de votre application, des jetons refresh_token supplémentaires peuvent être créés. access_tokens.
Remarque : Le protocole OAuth2 permet au jeton refresh_token de changer chaque fois qu’il est utilisé. Bien que ce ne soit pas toujours le cas avec l’implémentation Amazon, partez du principe que ceci peut se produire à tout moment et utilisez un magasin de secrets modifiables.