

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Segarkan token
<a name="amazon-cognito-user-pools-using-the-refresh-token"></a>

Anda dapat menggunakan token refresh untuk mengambil ID baru dan token akses. Secara default, token refresh kedaluwarsa 30 hari setelah pengguna aplikasi Anda masuk ke kolam pengguna Anda. Ketika Anda membuat aplikasi untuk kolam pengguna Anda, Anda dapat mengatur aplikasi refresh token kedaluwarsa untuk setiap nilai antara 60 menit dan 10 tahun. 

## Mendapatkan akses baru dan token identitas dengan token penyegaran
<a name="amazon-cognito-user-pools-using-the-refresh-token_initiate-token"></a>

Amazon Cognito mengeluarkan token refresh sebagai respons terhadap otentikasi yang berhasil dengan alur kode otorisasi login terkelola dan dengan operasi API atau metode SDK. Token penyegaran mengembalikan ID baru dan token akses, dan secara opsional token penyegaran baru. Anda dapat menggunakan token penyegaran dengan cara berikut.

**GetTokensFromRefreshToken**  
Operasi [GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html)API mengeluarkan ID baru dan token akses dari token penyegaran yang valid. Anda juga mendapatkan token penyegaran baru jika Anda telah mengaktifkan rotasi token penyegaran.

**InitiateAuth dan AdminitiateAuth**  
Operasi [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)atau [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API menyertakan alur `REFRESH_TOKEN_AUTH` otentikasi. Dalam alur ini, Anda meneruskan token penyegaran dan mendapatkan ID baru dan token akses. Anda tidak dapat mengautentikasi dengan klien `REFRESH_TOKEN_AUTH` di aplikasi dengan mengaktifkan [rotasi token penyegaran](#using-the-refresh-token-rotation).

**OAuth titik akhir token**  
[Titik akhir token](token-endpoint.md) di kumpulan pengguna dengan [domain](cognito-user-pools-assign-domain.md) memiliki jenis `refresh_token` hibah yang mengeluarkan ID baru, akses, dan secara opsional (dengan [rotasi token penyegaran) menyegarkan token](#using-the-refresh-token-rotation) dari token penyegaran yang valid.

## Segarkan rotasi token
<a name="using-the-refresh-token-rotation"></a>

Anda dapat mengonfigurasi rotasi token refresh secara opsional di klien aplikasi Anda. Dengan rotasi token refresh, klien Anda dapat membatalkan token penyegaran asli dan mengeluarkan token penyegaran baru dengan setiap penyegaran token. Saat pengaturan ini diaktifkan, setiap permintaan yang berhasil dalam semua bentuk penyegaran token mengembalikan ID baru, akses, *dan* token penyegaran. Saat pengaturan ini dinonaktifkan, permintaan penyegaran token hanya mengembalikan akses baru dan token ID dan token penyegaran asli tetap valid. Token penyegaran baru berlaku untuk sisa durasi token penyegaran asli. Anda dapat mengonfigurasi [klien aplikasi](user-pool-settings-client-apps.md) untuk memutar token penyegaran atau untuk membawa token penyegaran asli. Untuk memungkinkan percobaan ulang untuk durasi singkat, Anda juga dapat mengonfigurasi masa tenggang untuk token penyegaran asli hingga 60 detik.

**Hal-hal yang perlu diketahui tentang rotasi token refresh**
+ Setelah Anda mengaktifkan rotasi token refresh, klaim baru ditambahkan dalam token web JSON dari kumpulan pengguna Anda. Klaim `origin_jti` dan `jti` ditambahkan ke token akses dan ID. Klaim ini meningkatkan ukuran JWTs.
+ Segarkan rotasi token tidak kompatibel dengan alur `REFRESH_TOKEN_AUTH` otentikasi. Untuk menerapkan rotasi token refresh, Anda harus menonaktifkan alur autentikasi ini di klien aplikasi Anda dan merancang aplikasi Anda untuk mengirimkan permintaan token-refresh dengan operasi [GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html)API atau metode SDK yang setara.
+ Dengan rotasi token refresh tidak aktif, Anda dapat menyelesaikan permintaan penyegaran token dengan salah satu atau. `GetTokensFromRefreshToken` `REFRESH_TOKEN_AUTH`
+ Saat [mengingat perangkat](amazon-cognito-user-pools-device-tracking.md) aktif di kumpulan pengguna, Anda harus memberikan kunci perangkat dalam `GetTokensFromRefreshToken` permintaan. Jika pengguna Anda tidak memiliki kunci perangkat terkonfirmasi yang dikirimkan aplikasi Anda dalam permintaan autentikasi awal, Amazon Cognito mengeluarkan yang baru. Untuk menyegarkan token dalam konfigurasi ini, Anda harus memberikan kunci perangkat, baik yang Anda tentukan `AuthParameters` atau menerima yang baru dalam respons otentikasi.
+ Anda dapat meneruskan `ClientMetadata` ke pemicu Lambda pembuatan token pra dalam permintaan Anda`GetTokensFromRefreshToken`. Data ini, yang diteruskan ke peristiwa input untuk pemicu Anda, memberikan konteks tambahan yang dapat Anda gunakan dalam logika khusus fungsi Lambda Anda.

Sebagai praktik keamanan terbaik, aktifkan rotasi token refresh pada klien aplikasi Anda.

------
#### [ Enable refresh token rotation (console) ]

Prosedur berikut mengaktifkan atau menonaktifkan rotasi token refresh untuk klien aplikasi Anda. Prosedur ini membutuhkan klien aplikasi yang sudah ada. Untuk mempelajari lebih lanjut tentang membuat klien aplikasi, lihat[Pengaturan khusus aplikasi dengan klien aplikasi](user-pool-settings-client-apps.md).

**Untuk mengaktifkan rotasi token refresh**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensional Anda.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar.

1. Arahkan ke menu **Klien aplikasi** dan pilih klien aplikasi yang ada.

1. Pilih **Edit** dari bagian **Informasi klien aplikasi** pada halaman.

1. Di bawah **Konfigurasi keamanan lanjutan**, cari opsi **Aktifkan rotasi token penyegaran**.

1. Untuk mengaktifkan rotasi, pilih kotak centang. Untuk menonaktifkan rotasi, batalkan pilihan kotak centang.

1. Di bawah **masa tenggang rotasi token Refresh**, masukkan beberapa detik, hingga 60, yang ingin Anda atur sebagai penundaan sebelum token penyegaran yang diputar dicabut.

------
#### [ Enable refresh token rotation (API) ]

Konfigurasikan rotasi token refresh dalam permintaan [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)atau [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)API. Badan permintaan sebagian berikut mengaktifkan rotasi token refresh dan menetapkan masa tenggang menjadi sepuluh detik.

```
"RefreshTokenRotation" : {
   "Feature" : "ENABLED,
   "RetryGracePeriodSeconds" : 10
}
```

------

## Penyegaran token API dan SDK
<a name="using-the-refresh-token-api"></a>

Ada dua cara untuk menggunakan token penyegaran untuk mendapatkan ID baru dan token akses dengan API kumpulan pengguna, tergantung pada apakah rotasi token refresh aktif. Di klien aplikasi dengan rotasi token refresh aktif, gunakan operasi [GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html)API. Di klien aplikasi tanpa rotasi token refresh, gunakan `REFRESH_TOKEN_AUTH` alur operasi [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)atau [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API.

**catatan**  
Pengguna dapat melakukan autentikasi dengan kumpulan pengguna di [login terkelola](cognito-user-pools-managed-login.md) atau dalam aplikasi khusus yang Anda buat AWS SDKs dan operasi Amazon Cognito API. `REFRESH_TOKEN_AUTH`Alur dan keduanya `GetTokensFromRefreshToken` dapat menyelesaikan penyegaran token untuk pengguna login terkelola. Penyegaran token dalam aplikasi khusus tidak memengaruhi sesi login terkelola. Sesi ini diatur dalam cookie browser dan berlaku selama satu jam. `GetTokensFromRefreshToken`Respons mengeluarkan ID baru, akses, dan token penyegaran opsional, tetapi tidak memperbarui cookie sesi login terkelola.  
`REFRESH_TOKEN_AUTH`tidak tersedia di klien aplikasi dengan rotasi token refresh diaktifkan.

------
#### [ GetTokensFromRefreshToken ]

[GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html)mengembalikan ID baru, mengakses, dan menyegarkan token dari permintaan yang Anda otorisasi dengan token penyegaran. Berikut ini adalah contoh badan permintaan untuk`GetTokensFromRefreshToken`. Anda dapat mengirimkan metadata klien ke pemicu Lambda dalam permintaan untuk operasi ini.

```
{
    "RefreshToken": "eyJjd123abcEXAMPLE",
    "ClientId": "1example23456789",
    "ClientSecret": "myappclientsecret123abc",
    "ClientMetadata": { 
      "MyMetadataKey" : "MyMetadataValue" 
   },
}
```

------
#### [ AdminInitiateAuth/InitiateAuth ]

Untuk menggunakan token penyegaran saat rotasi token refresh tidak aktif, gunakan operasi [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)atau [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API. Lewatkan `REFRESH_TOKEN_AUTH` untuk parameter `AuthFlow`. Di `AuthParameters` properti`AuthFlow`, berikan token penyegaran pengguna Anda sebagai nilai`"REFRESH_TOKEN"`. Amazon Cognito mengembalikan ID baru dan token akses setelah permintaan API Anda melewati semua tantangan.

Berikut ini adalah contoh badan permintaan untuk penyegaran token dengan `InitiateAuth` atau `AdminInitiateAuth` API.

```
{
    "AuthFlow": "REFRESH_TOKEN_AUTH",
    "ClientId": "1example23456789",
    "UserPoolId": "us-west-2_EXAMPLE",
    "AuthParameters": {
        "REFRESH_TOKEN": "eyJjd123abcEXAMPLE",
        "SECRET_HASH": "kT5acwCVrbD6JexhW3EQwnRSe6fLuPTRkEQ50athqv8="
    }
}
```

------

## OAuth penyegaran token
<a name="using-the-refresh-token-oauth"></a>

Anda juga dapat mengirimkan token penyegaran ke [Titik akhir token](token-endpoint.md) dalam kumpulan pengguna tempat Anda telah mengonfigurasi domain. Di badan permintaan, sertakan `grant_type` nilai `refresh_token` dan `refresh_token` nilai token penyegaran pengguna Anda.

Permintaan ke titik akhir token tersedia di klien aplikasi dengan rotasi token refresh aktif dan yang tidak aktif. Saat rotasi token refresh aktif, titik akhir token mengembalikan token penyegaran baru.

Berikut ini adalah contoh permintaan dengan token penyegaran.

```
POST /oauth2/token HTTP/1.1
Host: auth.example.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic ZGpjOTh1M2ppZWRtaTI4M2V1OTI4OmFiY2RlZjAxMjM0NTY3ODkw
Content-Length: **

client_id=1example23456789&grant_type=refresh_token&refresh_token=eyJjd123abcEXAMPLE
```

## Mencabut token penyegaran
<a name="amazon-cognito-identity-user-pools-revoking-all-tokens-for-user"></a>

Anda dapat mencabuttokenrefresh milik pengguna. Untuk informasi selengkapnya tentang mencabut token, lihat. [Mengakhiri sesi pengguna dengan pencabutan token](token-revocation.md) 

**catatan**  
Mencabut token penyegaran akan mencabut semua ID dan token akses yang dikeluarkan Amazon Cognito dari permintaan penyegaran dengan token itu.

Untuk mengeluarkan pengguna dari semua sesi masuk saat ini, cabut semua token mereka dengan atau permintaan API. [GlobalSignOut[AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GlobalSignOut.html) Setelah pengguna keluar, efek berikut terjadi.
+ Token penyegaran pengguna tidak bisa mendapatkan token baru untuk pengguna.
+ Token akses pengguna tidak dapat membuat permintaan API yang diotorisasi token.
+ Pengguna harus mengautentikasi ulang untuk mendapatkan token baru. Karena cookie sesi login terkelola tidak kedaluwarsa secara otomatis, pengguna Anda dapat mengautentikasi ulang dengan cookie sesi, tanpa permintaan tambahan untuk kredensil. Setelah Anda mengeluarkan pengguna login terkelola, arahkan mereka ke[Titik akhir logout](logout-endpoint.md), tempat Amazon Cognito menghapus cookie sesi mereka.

Dengan token penyegaran, Anda dapat mempertahankan sesi pengguna di aplikasi Anda untuk waktu yang lama. Seiring waktu, pengguna Anda mungkin ingin membatalkan otorisasi beberapa aplikasi di mana mereka tetap masuk dengan token penyegaran mereka. Untuk mengeluarkan pengguna Anda dari satu sesi, cabut token penyegaran mereka. Saat pengguna Anda ingin keluar dari semua sesi yang diautentikasi, buat permintaan [GlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GlobalSignOut.html)API. Aplikasi Anda dapat memberi pengguna pilihan seperti **Keluar dari semua perangkat**. `GlobalSignOut`menerima token akses pengguna yang valid—tidak berubah, belum kedaluwarsa, tidak dicabut—. Karena API ini diberi otorisasi token, satu pengguna tidak dapat menggunakannya untuk memulai keluar untuk pengguna lain.

Namun, Anda dapat membuat permintaan [AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html)API yang Anda otorisasi dengan AWS kredensyal Anda untuk mengeluarkan pengguna mana pun dari semua perangkat mereka. Aplikasi administrator harus memanggil operasi API ini dengan kredensi AWS pengembang dan meneruskan ID kumpulan pengguna dan nama pengguna pengguna sebagai parameter. API `AdminUserGlobalSignOut` dapat mengeluarkan setiap pengguna di kolam pengguna.

Untuk informasi selengkapnya tentang permintaan yang dapat Anda otorisasi dengan AWS kredensi atau token akses pengguna, lihat. [Daftar operasi API yang dikelompokkan berdasarkan model otorisasi](authentication-flows-public-server-side.md#user-pool-apis-auth-unauth)