Cara menggunakan ASYNTASK pada JavaScript

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensial hak istimewa sementara dan terbatas ke aplikasi Anda, sehingga pengguna Anda dapat mengakses sumber daya AWS. Bagian ini menjelaskan cara mendapatkan kredensial dan bagaimana cara mengambil identitas Amazon Cognito dari kolam identitas.

Show

Amazon Cognito mendukung identitas baik yang terautentikasi maupun yang tidak terautentikasi. Pengguna yang tidak diautentikasi tidak meminta agar identitas mereka diverifikasi, sehingga peran ini sesuai untuk pengguna tamu aplikasi Anda atau jika pengguna meminta agar identitas mereka diverifikasi dan itu tidak dipermasalahkan. Pengguna yang diautentikasi masuk ke aplikasi Anda melalui penyedia identitas pihak ketiga, atau kolam pengguna, yang memverifikasi identitas mereka. Pastikan Anda menjangkau izin sumber daya dengan tepat sehingga Anda tidak memberikan akses kepada mereka dari pengguna yang tidak terautentikasi.

Identitas Amazon Cognito identitas bukan kredensial. Identitas ini ditukar dengan kredensial dengan menggunakan dukungan federasi identitas web di AWS Security Token Service (AWS STS). Cara yang disarankan untuk mendapatkan kredensial AWS untuk pengguna aplikasi Anda adalah dengan menggunakan AWS.CognitoIdentityCredentials. Identitas dalam objek kredensial kemudian ditukar dengan kredensial dengan menggunakan AWS STS.

Jika Anda membuat kolam identitas Anda sebelum Februari 2015, Anda harus mengaitkan kembali peran Anda dengan kolam identitas Anda agar dapat menggunakan kolam identitas Anda agar dapat menggunakan kolam identitas Anda agar dapat menggunakanAWS.CognitoIdentityCredentialskonstruktor tanpa peran sebagai parameter. Untuk melakukannya, bukaKonsol Amazon CognitoMemiiilihMengelola kolam identitas, pilih kumpulan identitas Anda, pilihEdit Pool identitas, tentukan peran Anda yang terautentikasi dan tidak diautentikasi, dan simpan perubahannya.

Android

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensial hak istimewa sementara dan terbatas ke aplikasi Anda, sehingga pengguna Anda dapat mengakses sumber daya AWS. Amazon Cognito mendukung identitas baik yang terautentikasi maupun tidak terautentikasi. Untuk menyediakan AWS kredensial ke aplikasi Anda, ikuti langkah-langkah di bawah ini.

  1. MemiiilihMengelola kolam identitasdariKonsol Amazon Cognito, buat kolam identitas, dan salin cuplikan kode pemula.

  2. Jika Anda belum melakukannya, tambahkan AWS Mobile SDK for Android Untuk proyek Anda. Untuk instruksi, lihat Menyiapkan Mobile SDK for Android.

  3. Sertakan pernyataan impor berikut:

    import com.amazonaws.auth.CognitoCachingCredentialsProvider;
    import com.amazonaws.regions.Regions;
  4. Inisialisasi penyedia kredensial Amazon Cognito dengan menggunakan cuplikan kode yang dihasilkan oleh konsol Amazon Cognito. Nilai untuk IDENTITY_POOL_ID akan spesifik untuk akun Anda:

    CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
      getApplicationContext(), // Context
      "IDENTITY_POOL_ID", // Identity Pool ID
      Regions.US_EAST_1 // Region
    );
  5. Berikan penyedia kredensial Amazon Cognito yang diinisialisasi ke konstruktor klien AWS yang akan digunakan. Kode yang diperlukan tergantung pada layanan yang akan diinisialisasi. Klien akan menggunakan penyedia ini untuk mendapatkan kredensial yang akan mengakses sumber daya AWS.

    Jika Anda membuat kolam identitas Anda sebelum Februari 2015, Anda harus mengaitkan kembali peran Anda dengan kolam identitas Anda agar dapat menggunakan konstruktor ini tanpa peran sebagai parameter. Untuk melakukannya, bukaKonsol Amazon CognitoMemiiilihMengelola Identitas gabungan, pilih pangkalan identitas Anda, dan pilihEdit Pool identitas, tentukan peran Anda yang terautentikasi dan tidak diautentikasi, dan simpan perubahannya.

Mengambil identitas Amazon Cognito

Jika Anda mengizinkan pengguna yang tidak diautentikasi, Anda dapat segera mengambil pengidentifikasi Amazon Cognito (ID identitas) unik untuk pengguna akhir Anda. Jika Anda mengautentikasi pengguna, Anda dapat mengambil ID identitas setelah menyetel token masuk di penyedia kredensial:

String identityId = credentialsProvider.getIdentityId();
Log.d("LogTag", "my ID is " + identityId);

Jangan panggil getIdentityId(), refresh(), atau getCredentials() di thread utama aplikasi Anda. Pada Android 3.0 (API Level 11), aplikasi Anda secara otomatis akan gagal dan membuangNetworkOnMainThreadExceptionjika Anda melakukan jaringan I/O pada thread aplikasi utama. Anda harus memindahkan kode ke thread latar belakang dengan menggunakanAsyncTask. Untuk informasi lebih lanjut, lihat dokumentasi Android. Anda juga dapat memanggil getCachedIdentityId() untuk menarik ID, tetapi hanya jika hal tersebut sudah di-cache secara lokal. Jika tidak, metode ini akan memberikan nilai null.

iOS - Objective-C

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensial hak istimewa sementara dan terbatas ke aplikasi Anda, sehingga pengguna Anda dapat mengakses sumber daya AWS. Kolam identitas Amazon Cognito mendukung identitas terautetikasi dan tidak terautentikasi. Untuk menyediakan AWS kredensial ke aplikasi Anda, ikuti langkah-langkah di bawah ini.

  1. MemiiilihMengelola kolam identitasdariKonsol Amazon Cognito, buat kolam identitas, dan salin cuplikan kode pemula.

  2. Jika Anda belum melakukannya, tambahkan AWS Mobile SDK for iOS Untuk proyek Anda. Untuk instruksi, lihat Menyiapkan Mobile SDK for iOS.

  3. Dalam kode sumber Anda, masukkan AWSCore Header:

    #import <AWSCore/AWSCore.h>
  4. Inisialisasi penyedia kredensial Amazon Cognito dengan menggunakan cuplikan kode yang dihasilkan oleh konsol Amazon Cognito. Nilai untuk IDENTITY_POOL_ID akan spesifik untuk akun Anda:

    AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc]
    initWithRegionType:AWSRegionUSEast1 identityPoolId:@"IDENTITY_POOL_ID"];
    AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc]
    initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
    AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;

    Jika Anda membuat kolam identitas Anda sebelum Februari 2015, Anda harus mengaitkan kembali peran Anda dengan kolam identitas Anda agar dapat menggunakan konstruktor ini tanpa peran sebagai parameter. Untuk melakukannya, bukaKonsol Amazon CognitoMemiiilihMengelola kolam identitas, pilih kumpulan identitas Anda, pilihEdit Pool identitas, tentukan peran Anda yang diautentikasi dan tidak diautentikasi, dan simpan perubahannya.

Mengambil identitas Amazon Cognito

Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:

// Retrieve your Amazon Cognito ID
[[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) {
    if (task.error) {
        NSLog(@"Error: %@", task.error);
    }
    else {
        // the task result will contain the identity id
        NSString *cognitoId = task.result;
    }
    return nil;
}];

getIdentityId adalah panggilan asinkron. Jika ID identitas telah diatur pada penyedia layanan Anda, Anda dapat menghubungi credentialsProvider.identityId untuk menarik identitas itu, yang di-cache secara di lokasi tersebut. Namun, jika ID identitas tidak diatur pada penyedia Anda, memanggil credentialsProvider.identityId akan menampilkan nil. Untuk informasi lebih lanjut, konsultasikanAmplify referensi SDK iOS.

iOS - Swift

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensi hak istimewa sementara dan terbatas ke aplikasi Anda sehingga pengguna dapat mengaksesAWSsumber daya. Amazon Cognito mendukung identitas baik yang terautentikasi maupun tidak terautentikasi. Untuk menyediakan AWS kredensial ke aplikasi Anda, ikuti langkah-langkah di bawah ini.

  1. MemiiilihMengelola kolam identitasdariKonsol Amazon Cognito, buat kolam identitas, dan salin cuplikan kode pemula.

  2. Jika Anda belum melakukannya, tambahkan Mobile SDK for iOS ke proyek Anda. Untuk instruksi, lihat Menyiapkan Mobile SDK for iOS.

  3. Dalam kode sumber Anda, masukkan header AWSCore:

    import AWSCore
  4. Inisialisasi penyedia kredensial Amazon Cognito dengan menggunakan cuplikan kode yang dihasilkan oleh konsol Amazon Cognito. Nilai untuk IDENTITY_POOL_ID akan spesifik untuk akun Anda:

    let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: "IDENTITY_POOL_ID")
    let configuration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: credentialsProvider)
    AWSServiceManager.default().defaultServiceConfiguration = configuration

    Jika Anda membuat kolam identitas Anda sebelum Februari 2015, Anda harus mengaitkan kembali peran Anda dengan kolam identitas Anda agar dapat menggunakan konstruktor ini tanpa peran sebagai parameter. Untuk melakukannya, bukaKonsol Amazon CognitoMemiiilihMengelola kolam identitas, pilih kumpulan identitas Anda, pilihEdit Pool identitas, tentukan peran Anda yang diautentikasi dan tidak diautentikasi, dan simpan perubahannya.

Mengambil identitas Amazon Cognito

Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:

// Retrieve your Amazon Cognito ID
credentialsProvider.getIdentityId().continueWith(block: { (task) -> AnyObject? in
    if (task.error != nil) {
        print("Error: " + task.error!.localizedDescription)
    }
    else {
        // the task result will contain the identity id
        let cognitoId = task.result!
        print("Cognito id: \(cognitoId)")
    }
    return task;
})

getIdentityId adalah panggilan asinkron. Jika ID identitas telah diatur pada penyedia layanan Anda, Anda dapat menghubungi credentialsProvider.identityId untuk menarik identitas itu, yang di-cache secara di lokasi tersebut. Namun, jika ID identitas tidak diatur pada penyedia Anda, memanggil credentialsProvider.identityId akan menampilkan nil. Untuk informasi lebih lanjut, konsultasikanAmplify referensi SDK iOS.

JavaScript

Jika Anda belum membuatnya, buat kolam identitas di Konsol Amazon Cognito sebelum menggunakan AWS.CognitoIdentityCredentials.

Setelah mengkonfigurasi kolam identitas dengan penyedia identitas, Anda dapat menggunakan AWS.CognitoIdentityCredentials untuk mengautentikasi pengguna. Untuk mengkonfigurasi kredensial aplikasi Anda agar dapat menggunakan AWS.CognitoIdentityCredentials, atur properti credentials baik AWS.Config atau konfigurasi per layanan. Contoh berikut menggunakan AWS.Config:

// Set the region where your identity pool exists (us-east-1, eu-west-1)
AWS.config.region = 'us-east-1';

// Configure the credentials provider to use your identity pool
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'IDENTITY_POOL_ID',
    Logins: { // optional tokens, used for authenticated login
        'graph.facebook.com': 'FBTOKEN',
        'www.amazon.com': 'AMAZONTOKEN',
        'accounts.google.com': 'GOOGLETOKEN',
        'appleid.apple.com': 'APPLETOKEN'
    }
});

// Make the call to obtain credentials
AWS.config.credentials.get(function(){

    // Credentials will be available when this function is called.
    var accessKeyId = AWS.config.credentials.accessKeyId;
    var secretAccessKey = AWS.config.credentials.secretAccessKey;
    var sessionToken = AWS.config.credentials.sessionToken;

});

Properti opsional Logins adalah peta nama penyedia identitas untuk token identitas bagi penyedia tersebut. Bagaimana Anda bisa mendapatkan token dari penyedia identitas Anda tergantung pada penyedia yang Anda gunakan. Misalnya, jika Facebook adalah salah satu penyedia identitas Anda, Anda dapat menggunakan fungsi FB.login dari SDK Facebook untuk mendapatkan token penyedia identitas:

FB.login(function (response) {
    if (response.authResponse) { // logged in
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
          IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',
          Logins: {
            'graph.facebook.com': response.authResponse.accessToken
          }
        });

        console.log('You are now logged in.');
    } else {
        console.log('There was a problem logging you in.');
    }
});

Mengambil identitas Amazon Cognito

Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:

var identityId = AWS.config.credentials.identityId;

Unity

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensial hak istimewa sementara dan terbatas ke aplikasi Anda, sehingga pengguna Anda dapat mengakses sumber daya AWS. Amazon Cognito mendukung identitas baik yang terautentikasi maupun tidak terautentikasi. Untuk menyediakan AWS kredensial ke aplikasi Anda, ikuti langkah-langkah di bawah ini.

  1. MemiiilihMengelola kolam identitas, dariKonsol Amazon Cognito, buat kolam identitas, dan salin cuplikan kode pemula.

  2. Jika Anda belum melakukannya, unduh dan impor AWS Mobile SDK for Unity ke dalam proyek Anda. Anda dapat melakukannya dari menu Assets > Import Package > Custom Package.

  3. Tempelkan cuplikan kode awal dari Konsol ke bagian dalam skrip tempat ingin Anda memanggil Amazon Cognito. Nilai untuk IDENTITY_POOL_ID akan spesifik untuk akun Anda:

    CognitoAWSCredentials credentials = new CognitoAWSCredentials (
          "IDENTITY_POOL_ID",    // Cognito identity Pool ID
          RegionEndpoint.USEast1 // Region
        );
  4. Berikan kredensial Amazon Cognito yang diinisialisasi ke konstruktor klien AWS yang akan digunakan. Kode yang diperlukan tergantung pada layanan yang akan diinisialisasi. Klien akan menggunakan penyedia ini untuk mendapatkan kredensial yang akan mengakses sumber daya AWS.

    Jika Anda membuat kolam identitas Anda sebelum Februari 2015, Anda harus mengaitkan kembali peran Anda dengan kolam identitas Anda agar dapat menggunakan konstruktor ini tanpa peran sebagai parameter. Untuk melakukannya, bukaKonsol Amazon CognitoMemiiilihMengelola kolam identitas, pilih kumpulan identitas Anda, pilihEdit Pool identitas, tentukan peran Anda yang diautentikasi dan tidak diautentikasi, dan simpan perubahannya.

Mengambil identitas Amazon Cognito

Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:

credentials.GetIdentityIdAsync(delegate(AmazonCognitoIdentityResult<string> result) {
    if (result.Exception != null) {
        //Exception!
    }
    string identityId = result.Response;
});

Xamarin

Anda dapat menggunakan Amazon Cognito untuk mengirimkan kredensi hak istimewa sementara dan terbatas ke aplikasi Anda sehingga pengguna dapat mengaksesAWSsumber daya. Amazon Cognito mendukung identitas baik yang terautentikasi maupun tidak terautentikasi. Untuk menyediakan AWS kredensial ke aplikasi Anda, ikuti langkah-langkah di bawah ini.

  1. MemiiilihMengelola kolam identitas, dariKonsol Amazon Cognito, buat kolam identitas, dan salin cuplikan kode pemula.

  2. Jika Anda belum melakukannya, tambahkan AWS Mobile SDK for Xamarin ke proyek Anda. Untuk instruksi, lihat Menyiapkan SDK for Xamarin.

  3. Sertakan pernyataan penggunaan berikut ini:

    using Amazon.CognitoIdentity;
  4. Tempelkan cuplikan kode awal dari Konsol ke bagian dalam skrip tempat ingin Anda memanggil Amazon Cognito. Nilai untuk IDENTITY_POOL_ID akan spesifik untuk akun Anda:

    CognitoAWSCredentials credentials = new CognitoAWSCredentials (
      "IDENTITY_POOL_ID",    // Cognito identity Pool ID
      RegionEndpoint.USEast1 // Region
    );
  5. Berikan kredensial Amazon Cognito yang diinisialisasi ke konstruktor klien AWS yang akan digunakan. Kode yang diperlukan tergantung pada layanan yang akan diinisialisasi. Klien akan menggunakan penyedia ini untuk mendapatkan kredensial yang akan mengakses sumber daya AWS.

Catatan: Jika Anda membuat kolam identitas Anda sebelum Februari 2015, Anda harus mengaitkan kembali peran Anda dengan kolam identitas Anda agar dapat menggunakan konstruktor ini tanpa peran sebagai parameter. Untuk melakukannya, bukaKonsol Amazon CognitoMemiiilihMengelola kolam identitas, pilih kumpulan identitas Anda, pilihEdit Pool identitas, tentukan peran Anda yang diautentikasi dan tidak diautentikasi, dan simpan perubahannya.

Mengambil identitas Amazon Cognito

Anda dapat segera menarik pengidentifikasi Amazon Cognito unik (ID identitas) untuk pengguna akhir Anda jika Anda mengizinkan pengguna yang tidak diautentikasi atau setelah Anda menyetel token login di penyedia kredensial jika Anda mengautentikasi pengguna:

var identityId = await credentials.GetIdentityIdAsync();