Autorisierungscodes sind einmalig verwendbare Token. Wenn sie zum Abrufen eines access_token verwendet werden, wird ein refresh_token zurückgegeben, das wiederum zum Abrufen des nächsten access_token verwendet werden kann. Der folgende Abschnitt führt dich durch den Abruf deines ersten refresh_token.
Erste Anfrage
Wenn du zum ersten Mal ein Token anforderst, benötigst du Folgendes:
- client_id des Sicherheitsprofils der Anwendung
- client_secret des Sicherheitsprofils der Anwendung
- Registrierte redirect_uri der Anwendung
- Zuvor erstellten Code für die Anwendungsautorisierung
- Den zu verwendenden grant_type, der Folgendes sein sollte:
Um ein Token anzufordern:
- Gib client_id, client_secret, authorization_code und grant_type als URL-kodierte Formulardaten ein.
- Stelle eine HTTP-Anfrage.
Der curl-Befehl zum Generieren von Token aus authorization_code wird im folgenden Beispiel gezeigt.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'
Es werden zwei Token zurückgegeben, ein access_token und ein 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 }
Reguläre Token-Anfragen
Jeder nachfolgende Aufruf zum Abrufen eines neuen kurzlebigen Token muss einen grant_type von refresh_token verwenden und das refresh_token einschließen. Deine Anwendung fordert jedes Mal, wenn eine neue Sitzung beginnt, die folgenden Schritte an. Dieses Verfahren verwendet das refresh_token in Kombination mit den vorhandenen Geheimnissen, um ein neues kurzlebiges access_token auszustellen.
- Gib client_id, client_secret, redirect_uri, authorization_code und grant_type als URL-kodierte Formulardaten ein.
Stelle eine HTTP-Anfrage entweder mit curl oder Reference Implementation-Anwendung).
Verwende den folgenden curl-Befehl, um Zugriffs-Token mit einem Aktualisierungs-Token zu generieren: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'Es werden zwei Token zurückgegeben, ein access_token und ein 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 }
Zugriffstoken und Aktualisierungstoken
access_token: Dieses kurzlebige Token ist in HTTP-Anforderungen an die API enthalten. Obwohl es kurzlebig ist, enthält es kritische Informationen. Sie dürfen es also nicht teilen. Neue access_tokens können einfach generiert werden.
refresh_token: Dieses unbestimmte Token wird vom Client verwendet, um alle nachfolgenden Token anzufordern. Es enthält ebenfalls kritische Informationen. In Kombination mit der client_id und client_secret für deine Anwendung kannst du den refresh_token verwenden, um mehr access_tokens zu erstellen.
Hinweis: Die OAuth2-Spezifikation ermöglicht es, dass sich das refresh_token jedes Mal ändert, wenn es verwendet wird. Auch wenn das bei der Amazon-Implementierung nicht immer der Fall ist, solltest du davon ausgehen, dass es jederzeit passieren kann, und für diesen Wert einen veränderbaren geheimen Speicher verwenden.