

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

# Atribut pengguna endpoint
<a name="userinfo-endpoint"></a>

Jika OIDC mengeluarkan token ID yang berisi atribut pengguna, OAuth 2.0 mengimplementasikan titik akhir. `/oauth2/userInfo` Pengguna atau klien yang diautentikasi menerima token akses dengan `scopes` klaim. Klaim ini menentukan atribut yang harus dikembalikan oleh server otorisasi. Saat aplikasi menyajikan token akses ke `userInfo` titik akhir, server otorisasi mengembalikan badan respons yang berisi atribut pengguna yang berada dalam batas yang ditetapkan oleh cakupan token akses. Aplikasi Anda dapat mengambil informasi tentang pengguna dari `userInfo` titik akhir selama memegang token akses yang valid dengan setidaknya klaim `openid` cakupan.

Titik `userInfo` akhir adalah titik akhir UserInfo OpenID Connect ([OIDC](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo)). Ini merespons dengan atribut pengguna ketika penyedia layanan menyajikan token akses yang dikeluarkan [titik akhir token](token-endpoint.md) Anda. Cakupan dalam token akses pengguna Anda menentukan atribut pengguna yang ditampilkan oleh titik akhir UserInfo dalam responsnya. Ruang `openid` lingkup harus menjadi salah satu klaim token akses.

Amazon Cognito mengeluarkan token akses sebagai respons terhadap permintaan API kumpulan pengguna seperti. [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) Karena tidak mengandung cakupan apa pun, userInfo titik akhir tidak menerima token akses ini. Sebagai gantinya, Anda harus menunjukkan token akses dari titik akhir token Anda.

Penyedia identitas pihak ketiga OAuth 2.0 (iDP) Anda juga menghosting titik akhir. userInfo Saat pengguna Anda mengautentikasi dengan IDP tersebut, Amazon Cognito secara diam-diam menukar kode otorisasi dengan endpoint iDP. `token` Kumpulan pengguna Anda meneruskan token akses iDP untuk mengotorisasi pengambilan informasi pengguna dari titik akhir iDP. `userInfo`

Cakupan dalam token akses pengguna ditentukan oleh parameter `scopes` permintaan dalam permintaan otentikasi, atau cakupan yang ditambahkan oleh pemicu [Lambda generasi pra](user-pool-lambda-pre-token-generation.md) token. Anda dapat memecahkan kode token akses dan memeriksa `scope` klaim untuk melihat cakupan kontrol akses yang dikandungnya. Berikut ini adalah beberapa kombinasi lingkup yang mempengaruhi data yang dikembalikan dari `userInfo` titik akhir. Cakupan Amazon Cognito yang dipesan tidak `aws.cognito.signin.user.admin` berpengaruh pada data yang dikembalikan dari titik akhir ini.Contoh cakupan dalam token akses dan pengaruhnya terhadap respons `userInfo`

**`openid`**  
Mengembalikan respons dengan semua atribut pengguna yang dapat dibaca oleh klien aplikasi.

**`openid profile`**  
Mengembalikan atribut pengguna `name``family_name`,`given_name`,`middle_name`, `nickname``preferred_username`,`profile`,`picture`,`website`,`gender`,`birthdate`,`zoneinfo`,`locale`, dan`updated_at`. Juga mengembalikan [atribut kustom](user-pool-settings-attributes.md#user-pool-settings-custom-attributes). Di klien aplikasi yang tidak memiliki akses baca ke setiap atribut, respons terhadap cakupan ini adalah semua atribut dalam spesifikasi yang dapat diakses oleh klien aplikasi Anda.

**`openid email`**  
Mengembalikan informasi profil dasar `email` dan dan `email_verified` atribut.

**`openid phone`**  
Mengembalikan informasi profil dasar `phone_number` dan dan `phone_number_verified` atribut.

## GET /oauth2/userInfo
<a name="get-userinfo"></a>

Aplikasi Anda menghasilkan permintaan ke titik akhir ini secara langsung, bukan melalui browser.

Untuk informasi selengkapnya, lihat [UserInfoEndpoint](http://openid.net/specs/openid-connect-core-1_0.html#UserInfo) dalam spesifikasi OpenID Connect (OIDC).

**Topics**
+ [GET /oauth2/userInfo](#get-userinfo)
+ [Minta parameter di header](#get-userinfo-request-header-parameters)
+ [Contoh - permintaan](#get-userinfo-positive-exchanging-authorization-code-for-userinfo-sample-request)
+ [Contoh — respon positif](#get-userinfo-response-sample)
+ [Contoh tanggapan negatif](#get-userinfo-negative)

## Minta parameter di header
<a name="get-userinfo-request-header-parameters"></a>

**`Authorization: Bearer <access_token>`**  
Lulus token akses di bidang header otorisasi.  
Wajib.

## Contoh - permintaan
<a name="get-userinfo-positive-exchanging-authorization-code-for-userinfo-sample-request"></a>

```
GET /oauth2/userInfo HTTP/1.1
Content-Type: application/x-amz-json-1.1
Authorization: Bearer eyJra12345EXAMPLE
User-Agent: [User agent]
Accept: */*
Host: auth.example.com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
```

## Contoh — respon positif
<a name="get-userinfo-response-sample"></a>

```
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: [Integer]
Date: [Timestamp]
x-amz-cognito-request-id: [UUID]
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Server: Server
Connection: keep-alive
{
    "sub": "[UUID]",
    "email_verified": "true",
    "custom:mycustom1": "CustomValue",
    "phone_number_verified": "true",
    "phone_number": "+12065551212",
    "email": "bob@example.com",
    "username": "bob"
}
```

Untuk daftar klaim OIDC, lihat Klaim [Standar](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims). Saat ini, Amazon Cognito mengembalikan nilai untuk `email_verified` dan `phone_number_verified` sebagai string.

## Contoh tanggapan negatif
<a name="get-userinfo-negative"></a>

### Contoh - permintaan buruk
<a name="get-userinfo-negative-400"></a>

```
HTTP/1.1 400 Bad Request
WWW-Authenticate: error="invalid_request",
error_description="Bad OAuth2 request at UserInfo Endpoint"
```

**`invalid_request`**  
Permintaan tidak memiliki parameter yang diperlukan, termasuk nilai parameter yang tidak didukung, atau jika tidak, salah bentuk.

### Contoh — token buruk
<a name="get-userinfo-negative-401"></a>

```
HTTP/1.1 401 Unauthorized
WWW-Authenticate: error="invalid_token",
error_description="Access token is expired, disabled, or deleted, or the user has globally signed out."
```

**`invalid_token`**  
Token akses kedaluwarsa, dicabut, cacat, atau tidak valid.