

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

# Mengalihkan pengguna yang tidak diautentikasi ke pengguna yang diautentikasi
<a name="switching-identities"></a>

Kolam identitas Amazon Cognito mendukung pengguna yang diautentikasi dan tidak terautentikasi. Pengguna yang tidak diautentikasi menerima akses ke AWS sumber daya Anda meskipun mereka tidak masuk dengan penyedia identitas Anda ()IdPs. Tingkat akses ini berguna untuk menampilkan konten kepada pengguna sebelum mereka masuk. Setiap pengguna tidak terautentikasi memiliki identitas unik di kolam identitas, meskipun mereka belum masuk secara individual dan diautentikasi.

Bagian ini menjelaskan kasus di mana pengguna Anda memilih untuk beralih dari masuk dengan identitas yang tidak terautentikasi ke menggunakan identitas yang terautentikasi.

## Android
<a name="switching-identities-1.android"></a>

Pengguna dapat masuk ke aplikasi Anda sebagai tamu yang tidak terautentikasi. Akhirnya mereka mungkin memutuskan untuk masuk menggunakan salah satu yang didukung IdPs. Amazon Cognito memastikan bahwa identitas lama mempertahankan pengenal unik yang sama seperti yang baru, dan bahwa data profil digabung secara otomatis.

Aplikasi Anda diberitahu tentang gabungan profil melalui antarmuka `IdentityChangedListener`. Menerapkan metode `identityChanged` dalam antarmuka untuk menerima pesan ini:

```
@override
public void identityChanged(String oldIdentityId, String newIdentityId) {
    // handle the change
}
```

## iOS - Objektif-C
<a name="switching-identities-1.ios-objc"></a>

Pengguna dapat masuk ke aplikasi Anda sebagai tamu yang tidak terautentikasi. Akhirnya mereka mungkin memutuskan untuk masuk menggunakan salah satu yang didukung IdPs. Amazon Cognito memastikan bahwa identitas lama mempertahankan pengenal unik yang sama seperti yang baru, dan bahwa data profil digabung secara otomatis.

`NSNotificationCenter` menginformasikan aplikasi penggabungan profil Anda:

```
[[NSNotificationCenter defaultCenter] addObserver:self
                                      selector:@selector(identityIdDidChange:)
                                      name:AWSCognitoIdentityIdChangedNotification
                                      object:nil];

-(void)identityDidChange:(NSNotification*)notification {
    NSDictionary *userInfo = notification.userInfo;
    NSLog(@"identity changed from %@ to %@",
        [userInfo objectForKey:AWSCognitoNotificationPreviousId],
        [userInfo objectForKey:AWSCognitoNotificationNewId]);
}
```

## iOS - cepat
<a name="switching-identities-1.ios-swift"></a>

Pengguna dapat masuk ke aplikasi Anda sebagai tamu yang tidak terautentikasi. Akhirnya mereka mungkin memutuskan untuk masuk menggunakan salah satu yang didukung IdPs. Amazon Cognito memastikan bahwa identitas lama mempertahankan pengenal unik yang sama seperti yang baru, dan bahwa data profil digabung secara otomatis.

`NSNotificationCenter` menginformasikan aplikasi penggabungan profil Anda:

```
[NSNotificationCenter.defaultCenter().addObserver(observer: self
   selector:"identityDidChange"
   name:AWSCognitoIdentityIdChangedNotification
   object:nil)

func identityDidChange(notification: NSNotification!) {
  if let userInfo = notification.userInfo as? [String: AnyObject] {
    print("identity changed from: \(userInfo[AWSCognitoNotificationPreviousId])
    to: \(userInfo[AWSCognitoNotificationNewId])")
  }
}
```

## JavaScript
<a name="switching-identities-1.javascript"></a>

### Awalnya pengguna yang tidak diautentikasi
<a name="switching-identities-1.javascript-unauth"></a>

Pengguna biasanya mulai dengan peran tidak terautentikasi. Untuk peran ini, Anda mengatur properti kredensial dari objek konfigurasi Anda tanpa properti Masuk. Dalam kasus ini, konfigurasi default Anda mungkin terlihat seperti berikut ini:

```
// set the default config object
var creds = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030'
});
AWS.config.credentials = creds;
```

### Beralih ke pengguna yang diautentikasi
<a name="switching-identities-1.javascript-auth"></a>

Ketika pengguna tidak terautentikasi masuk ke IdP dan Anda memiliki token, Anda dapat beralih pengguna dari yang tidak terauntentikasi menjadi terautentikasi dengan memanggil fungsi kustom yang memperbarui kredensial objek dan menambahkan token Masuk:

```
// Called when an identity provider has a token for a logged in user
function userLoggedIn(providerName, token) {
    creds.params.Logins = creds.params.Logins || {};
    creds.params.Logins[providerName] = token;

    // Expire credentials to refresh them on the next request
    creds.expired = true;
}
```

Anda juga dapat membuat objek `CognitoIdentityCredentials`. Jika Anda melakukannya, Anda harus mengatur ulang properti kredensial objek layanan yang sudah ada untuk mencerminkan informasi konfigurasi kredensial yang diperbarui. Lihat [Menggunakan objek konfigurasi global](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/global-config-object.html).

Untuk informasi lebih lanjut tentang `CognitoIdentityCredentials` objek, lihat [AWS. CognitoIdentityCredentials](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityCredentials.html)di Referensi AWS SDK untuk JavaScript API.

## Unity
<a name="switching-identities-1.unity"></a>

Pengguna dapat masuk ke aplikasi Anda sebagai tamu yang tidak terautentikasi. Akhirnya mereka mungkin memutuskan untuk masuk menggunakan salah satu yang didukung IdPs. Amazon Cognito memastikan bahwa identitas lama mempertahankan pengenal unik yang sama seperti yang baru, dan bahwa data profil digabung secara otomatis.

Anda dapat berlangganan ke `IdentityChangedEvent` untuk menerima notifikasi tentang penggabungan profil:

```
credentialsProvider.IdentityChangedEvent += delegate(object sender, CognitoAWSCredentials.IdentityChangedArgs e)
{
    // handle the change
    Debug.log("Identity changed from " + e.OldIdentityId + " to " + e.NewIdentityId);
};
```

## Xamarin
<a name="switching-identities-1.xamarin"></a>

Pengguna dapat masuk ke aplikasi Anda sebagai tamu yang tidak terautentikasi. Akhirnya mereka mungkin memutuskan untuk masuk menggunakan salah satu yang didukung IdPs. Amazon Cognito memastikan bahwa identitas lama mempertahankan pengenal unik yang sama seperti yang baru, dan bahwa data profil digabung secara otomatis.

```
credentialsProvider.IdentityChangedEvent += delegate(object sender, CognitoAWSCredentials.IdentityChangedArgs e){
    // handle the change
    Console.WriteLine("Identity changed from " + e.OldIdentityId + " to " + e.NewIdentityId);
};
```