Mengalihkan pengguna yang tidak diautentikasi ke pengguna terautentikasi (kumpulan identitas) - Amazon Cognito

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 terautentikasi (kumpulan identitas)

Kolam identitas Amazon Cognito mendukung pengguna yang diautentikasi dan tidak terautentikasi. Pengguna yang tidak diautentikasi menerima akses keAWS sumber daya Anda bahkan jika mereka tidak masuk dengan penyedia identitas (IdPs) mana pun. 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

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 - Objective-C

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 - Swift

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

Pengguna Awalnya Tidak Diautentikasi

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 Terautentikasi

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.

Untuk informasi selengkapnya tentangCognitoIdentityCredentials objek, lihat AWS. CognitoIdentityCredentialsdalam ReferensiAWS SDK for JavaScript API.

Unity

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

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); };