Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan Facebook sebagai kumpulan identitas IDP
Kumpulan identitas Amazon Cognito bekerja dengan Facebook untuk menyediakan otentikasi federasi bagi pengguna aplikasi Anda. Bagian ini menjelaskan cara mendaftar dan mengatur aplikasi Anda dengan Facebook sebagai IDP.
Mengatur Facebook
Daftarkan aplikasi Anda dengan Facebook sebelum Anda mengautentikasi pengguna Facebook dan berinteraksi dengan FacebookAPIs.
Portal Pengembang Facebook
catatan
Federasi kumpulan identitas Amazon Cognito tidak kompatibel dengan Login Terbatas Facebook
Menyiapkan Facebook
-
Pada Portal Developer Facebook
, masuk dengan kredensial Facebook Anda. -
Dari menu Aplikasi, pilih Tambah Aplikasi Baru.
-
Pilih platform dan selesaikan proses mulai cepat.
Android
Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi Android dengan Login Facebook, lihat Panduan Memulai Facebook
iOS - Objective-C
Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi iOS Objective-C dengan Login Facebook, lihat Panduan Memulai Facebook
iOS - Swift
Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi iOS Swift dengan Login Facebook, lihat Panduan Memulai Facebook
JavaScript
Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi JavaScript web dengan Login Facebook, lihat Panduan Memulai Facebook
Unity
Untuk informasi selengkapnya tentang cara mengintegrasikan aplikasi Unity dengan Login Facebook, lihat Panduan Memulai Facebook
Xamarin
Untuk menambahkan otentikasi Facebook, pertama-tama ikuti alur yang sesuai di bawah ini untuk mengintegrasikan Facebook SDK ke dalam aplikasi Anda. Kolam identitas Amazon Cognito menggunakan token akses Facebook untuk menghasilkan pengidentifikasi pengguna unik yang dikaitkan dengan identitas Amazon Cognito.
Mengonfigurasi penyedia identitas di konsol kumpulan identitas Amazon Cognito
Gunakan prosedur berikut untuk mengonfigurasi penyedia identitas Anda.
Untuk menambahkan penyedia identitas Facebook (iDP)
-
Pilih kumpulan Identitas dari konsol Amazon Cognito
. Pilih kumpulan identitas. -
Pilih tab Akses pengguna.
-
Pilih Tambahkan penyedia identitas.
-
Pilih Facebook.
-
Masukkan ID Aplikasi OAuth proyek yang Anda buat di Meta for Developers
. Untuk informasi selengkapnya, lihat Login Facebook di Meta for Developers Docs. -
Untuk menyetel peran yang diminta Amazon Cognito saat mengeluarkan kredensional kepada pengguna yang telah mengautentikasi dengan penyedia ini, konfigurasikan setelan Peran.
-
Anda dapat menetapkan pengguna dari IDP tersebut peran Default yang Anda atur saat mengonfigurasi peran Terautentikasi, atau Anda dapat Memilih peran dengan aturan.
-
Jika Anda memilih Pilih peran dengan aturan, masukkan Klaim sumber dari autentikasi pengguna Anda, Operator yang ingin Anda bandingkan dengan klaim, Nilai yang akan menyebabkan kecocokan dengan pilihan peran ini, dan Peran yang ingin Anda tetapkan saat penetapan Peran cocok. Pilih Tambahkan yang lain untuk membuat aturan tambahan berdasarkan kondisi yang berbeda.
-
Pilih Resolusi Peran. Jika klaim pengguna tidak sesuai dengan aturan, Anda dapat menolak kredensi atau mengeluarkan kredensi untuk peran yang Diautentikasi.
-
-
-
Untuk mengubah tag utama yang ditetapkan Amazon Cognito saat mengeluarkan kredensi kepada pengguna yang telah diautentikasi dengan penyedia ini, konfigurasikan Atribut untuk kontrol akses.
-
Untuk tidak menerapkan tag utama, pilih Tidak aktif.
-
Untuk menerapkan tag utama berdasarkan
sub
danaud
klaim, pilih Gunakan pemetaan default. -
Untuk membuat skema atribut kustom Anda sendiri ke tag utama, pilih Gunakan pemetaan khusus. Kemudian masukkan kunci Tag yang ingin Anda sumber dari setiap Klaim yang ingin Anda wakili dalam tag.
-
-
Pilih Simpan perubahan.
Menggunakan Facebook
Android
Untuk menambahkan otentikasi Facebook, pertama-tama ikuti panduan Facebook
Setelah Anda mengautentikasi pengguna Anda dengan FacebookSDK, tambahkan token sesi ke penyedia kredensi Amazon Cognito.
Facebook SDK 4.0 atau yang lebih baru:
Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken()); credentialsProvider.setLogins(logins);
Facebook SDK sebelum 4.0:
Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", Session.getActiveSession().getAccessToken()); credentialsProvider.setLogins(logins);
Proses login Facebook menginisialisasi sesi tunggal di dalamnya. SDK Objek sesi Facebook berisi OAuth token yang digunakan Amazon Cognito untuk menghasilkan AWS kredensi bagi pengguna akhir Anda yang diautentikasi. Amazon Cognito juga menggunakan token untuk memeriksa database pengguna Anda untuk keberadaan pengguna yang cocok dengan identitas Facebook khusus ini. Jika pengguna sudah ada, API mengembalikan pengenal yang ada. Jika tidak, API mengembalikan pengenal baru. Klien SDK secara otomatis menyimpan pengenal di perangkat lokal.
catatan
Setelah Anda mengatur peta login, lakukan panggilan ke refresh
atau get
untuk mengambil kredensialnya. AWS
iOS - Objective-C
Untuk menambahkan otentikasi Facebook, pertama-tama ikuti panduan Facebook
Untuk menyediakan token akses Facebook ke Amazon Cognito, terapkan AWSIdentityProviderManager
Saat Anda menerapkan logins
metode ini, kembalikan kamus yang berisiAWSIdentityProviderFacebook
. Kamus ini bertindak sebagai kunci, dan token akses saat ini dari pengguna Facebook yang diautentikasi bertindak sebagai nilai, seperti yang ditunjukkan pada contoh kode berikut.
- (AWSTask<NSDictionary<NSString *, NSString *> *> *)logins { FBSDKAccessToken* fbToken = [FBSDKAccessToken currentAccessToken]; if(fbToken){ NSString *token = fbToken.tokenString; return [AWSTask taskWithResult: @{ AWSIdentityProviderFacebook : token }]; }else{ return [AWSTask taskWithError:[NSError errorWithDomain:@"Facebook Login" code:-1 userInfo:@{@"error":@"No current Facebook access token"}]]; } }
Saat Anda memberi contoh AWSCognitoCredentialsProvider
, teruskan kelas yang menerapkan AWSIdentityProviderManager
sebagai nilai dari identityProviderManager
dalam konstruktor. Untuk informasi lebih lanjut, buka halaman AWSCognitoCredentialsProvider
iOS - Swift
Untuk menambahkan otentikasi Facebook, pertama-tama ikuti panduan Facebook
catatan
Federasi kumpulan identitas Amazon Cognito tidak kompatibel dengan Login Terbatas Facebook
Untuk menyediakan token akses Facebook ke Amazon Cognito, terapkan AWSIdentityProviderManager
Saat Anda menerapkan logins
metode ini, kembalikan kamus yang berisiAWSIdentityProviderFacebook
. Kamus ini bertindak sebagai kunci, dan token akses saat ini dari pengguna Facebook yang diautentikasi bertindak sebagai nilai, seperti yang ditunjukkan pada contoh kode berikut.
class FacebookProvider: NSObject, AWSIdentityProviderManager { func logins() -> AWSTask<NSDictionary> { if let token = AccessToken.current?.authenticationToken { return AWSTask(result: [AWSIdentityProviderFacebook:token]) } return AWSTask(error:NSError(domain: "Facebook Login", code: -1 , userInfo: ["Facebook" : "No current Facebook access token"])) } }
Saat Anda memberi contoh AWSCognitoCredentialsProvider
, teruskan kelas yang menerapkan AWSIdentityProviderManager
sebagai nilai dari identityProviderManager
dalam konstruktor. Untuk informasi lebih lanjut, kunjungi AWSCognitoCredentialsProvider
JavaScript
Untuk menambahkan otentikasi Facebook, ikuti Login Facebook untuk Web
Setelah Anda mengautentikasi pengguna Anda dengan FacebookSDK, tambahkan token sesi ke penyedia kredensi Amazon Cognito.
FB.login(function (response) { // Check if the user logged in successfully. if (response.authResponse) { console.log('You are now logged in.'); // Add the Facebook access token to the Amazon Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'graph.facebook.com': response.authResponse.accessToken } }); // Obtain AWS credentials AWS.config.credentials.get(function(){ // Access AWS resources here. }); } else { console.log('There was a problem logging you in.'); } });
Facebook SDK memperoleh OAuth token yang digunakan Amazon Cognito untuk AWS menghasilkan kredensi bagi pengguna akhir Anda yang diautentikasi. Amazon Cognito juga menggunakan token untuk memeriksa pada basis data pengguna Anda untuk keberadaan pengguna yang cocok dengan identitas Facebook tertentu ini. Jika pengguna sudah ada, API mengembalikan pengenal yang ada. Jika tidak sebuah pengidentifikasi baru dikembalikan. Pengidentifikasi secara otomatis di-cache oleh klien SDK pada perangkat lokal.
catatan
Setelah Anda mengatur peta login, lakukan panggilan ke refresh
atau get
untuk mendapatkan kredensialnya. Untuk contoh kode, lihat “Gunakan Kasus 17, Mengintegrasikan Kumpulan Pengguna dengan Identitas Cognito,” di JavaScript README file.
Unity
Untuk menambahkan otentikasi Facebook, pertama-tama ikuti panduan FacebookFB
objek untuk menghasilkan pengenal pengguna unik yang terkait dengan identitas Amazon Cognito.
Setelah Anda mengautentikasi pengguna Anda dengan FacebookSDK, tambahkan token sesi ke penyedia kredensi Amazon Cognito:
void Start() { FB.Init(delegate() { if (FB.IsLoggedIn) { //User already logged in from a previous session AddFacebookTokenToCognito(); } else { FB.Login ("email", FacebookLoginCallback); } }); } void FacebookLoginCallback(FBResult result) { if (FB.IsLoggedIn) { AddFacebookTokenToCognito(); } else { Debug.Log("FB Login error"); } } void AddFacebookTokenToCognito() { credentials.AddLogin ("graph.facebook.com", AccessToken.CurrentAccessToken.TokenString); }
Sebelum Anda menggunakanFB.AccessToken
, hubungi FB.Login()
dan pastikan FB.IsLoggedIn
itu benar.
Xamarin
Xamarin untuk Android:
public void InitializeFacebook() { FacebookSdk.SdkInitialize(this.ApplicationContext); callbackManager = CallbackManagerFactory.Create(); LoginManager.Instance.RegisterCallback(callbackManager, new FacebookCallback < LoginResult > () { HandleSuccess = loginResult = > { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new activity }, HandleCancel = () = > { //throw error message }, HandleError = loginError = > { //throw error message } }); LoginManager.Instance.LogInWithReadPermissions(this, new List < string > { "public_profile" }); }
Xamarin untuk iOS:
public void InitializeFacebook() { LoginManager login = new LoginManager(); login.LogInWithReadPermissions(readPermissions.ToArray(), delegate(LoginManagerLoginResult result, NSError error) { if (error != null) { //throw error message } else if (result.IsCancelled) { //throw error message } else { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new view controller } }); }