Mendaftar dan mengonfirmasi akun pengguna - Amazon Cognito

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

Mendaftar dan mengonfirmasi akun pengguna

Akun pengguna ditambahkan ke kolam pengguna Anda dengan salah satu cara berikut:

Pengguna yang mendaftar sendiri harus dikonfirmasi sebelum mereka dapat masuk. Pengguna yang diimpor dan dibuat sudah dikonfirmasi, tetapi mereka harus membuat kata sandi saat pertama kali masuk. Bagian berikut menjelaskan proses konfirmasi dan verifikasi email dan telepon.

Ikhtisar konfirmasi akun pengguna

Diagram berikut menggambarkan proses konfirmasi:

Ketika pengguna memasukkan kode konfirmasi, mereka secara otomatis memverifikasi email atau telepon.

Akun pengguna dapat berada di salah satu status berikut:

Terdaftar (Belum Dikonfirmasi)

Pengguna telah berhasil mendaftar, tetapi tidak dapat masuk sebelum akun pengguna dikonfirmasi. Pengguna telah diaktifkan tetapi tidak dikonfirmasi dalam status ini.

Pengguna baru yang mendaftar mulai dari status ini.

Terkonfirmasi

Akun pengguna dikonfirmasi dan pengguna dapat masuk. Ketika pengguna memasukkan kode atau mengikuti tautan email untuk mengonfirmasi akun pengguna mereka, email atau nomor telepon tersebut diverifikasi secara otomatis. Kode atau tautan verifikasi valid selama 24 jam.

Jika akun pengguna dikonfirmasi oleh administrator atau pemicu Lambda sebelum pendaftaran, mungkin tidak ada email atau nomor telepon terverifikasi yang terkait dengan akun tersebut.

Atur Ulang Kata Sandi Diperlukan

Akun pengguna dikonfirmasi, tetapi pengguna harus meminta kode dan mengatur ulang kata sandi mereka sebelum mereka dapat masuk.

Akun pengguna yang diimpor oleh administrator atau developer mulai di keadaan ini.

Paksa Ubah Kata Sandi

Akun pengguna dikonfirmasi dan pengguna dapat masuk menggunakan kata sandi sementara, tetapi saat masuk pertama, pengguna harus mengubah kata sandi mereka ke nilai baru sebelum melakukan hal lain.

Akun pengguna yang diimpor oleh administrator atau developer yang di mulai pada status ini.

Nonaktif

Sebelum Anda dapat menghapus akun pengguna, Anda harus menonaktifkan akses masuk untuk pengguna tersebut.

Memverifikasi informasi kontak saat mendaftar

Ketika pengguna baru mendaftar di aplikasi Anda, Anda mungkin ingin mereka untuk menyediakan paling tidak satu metode kontak. Misalnya, dengan informasi kontak pengguna Anda, Anda mungkin:

  • Kirim kata sandi sementara ketika pengguna memilih untuk mengatur ulang kata sandi mereka.

  • Beri tahu pengguna ketika informasi personal atau keuangan mereka diperbarui.

  • Kirim pesan promosi, seperti penawaran khusus atau diskon.

  • Kirim ringkasan akun atau pengingat penagihan.

Untuk kasus penggunaan seperti ini, Anda harus mengirim pesan ke tujuan yang terverifikasi. Jika tidak, Anda mungkin mengirim pesan Anda ke alamat email yang tidak valid atau nomor telepon yang tidak diketik dengan benar. Atau lebih buruk lagi, Anda mungkin mengirim informasi sensitif ke aktor jahat yang menyamar sebagai pengguna Anda.

Untuk membantu memastikan bahwa Anda hanya mengirim pesan ke individu yang tepat, konfigurasikan kolam pengguna Amazon Cognito Anda sehingga pengguna harus menyediakan hal berikut saat mereka mendaftar:

  1. Alamat email atau nomor telepon.

  2. Kode verifikasi yang dikirim Amazon Cognito ke alamat email atau nomor telepon tersebut. Jika 24 jam telah berlalu dan kode atau tautan pengguna Anda tidak lagi valid, hubungi operasi ResendConfirmationCodeAPI untuk membuat dan mengirim kode atau tautan baru.

Dengan memberikan kode verifikasi, pengguna membuktikan bahwa mereka memiliki akses ke kotak surat atau telepon yang menerima kode tersebut. Setelah pengguna memberikan kode, Amazon Cognito memperbarui informasi tentang pengguna di kolam pengguna Anda dengan:

  • Mengatur status pengguna ke CONFIRMED.

  • Memperbarui atribut pengguna untuk menunjukkan bahwa alamat email atau nomor telepon terverifikasi.

Untuk melihat informasi ini, Anda dapat menggunakan konsol Amazon Cognito. Atau, Anda dapat menggunakan operasi AdminGetUser API, admin-get-user perintah dengan AWS CLI, atau tindakan yang sesuai di salah satu AWS SDK.

Jika pengguna memiliki metode kontak terverifikasi, Amazon Cognito secara otomatis mengirim pesan ke pengguna saat pengguna meminta pengaturan ulang kata sandi.

Untuk mengonfigurasi kumpulan pengguna Anda agar memerlukan verifikasi email atau telepon

Ketika Anda memverifikasi alamat email dan nomor telepon pengguna Anda, Anda memastikan bahwa Anda dapat menghubungi pengguna Anda. Selesaikan langkah-langkah berikut di AWS Management Console untuk mengonfigurasi kumpulan pengguna Anda agar pengguna Anda mengonfirmasi alamat email atau nomor telepon mereka.

catatan

Jika Anda belum memiliki kumpulan pengguna di akun Anda, lihatMemulai dengan kumpulan pengguna.

Untuk mengonfigurasi kolam pengguna
  1. Arahkan ke konsol Amazon Cognito. Jika diminta, masukkan AWS kredensyal Anda.

  2. Dari panel navigasi, pilih User Pools. Pilih kolam pengguna yang ada dari daftar, atau buat kolam pengguna.

  3. Pilih tab Sign-up experience dan temukan Verifikasi atribut dan konfirmasi akun pengguna. Pilih Edit.

  4. Di bawah verifikasi dan konfirmasi yang dibantu Cognito, pilih apakah Anda akan Izinkan Cognito mengirim pesan secara otomatis untuk memverifikasi dan mengonfirmasi. Dengan pengaturan ini diaktifkan, Amazon Cognito mengirimkan pesan ke atribut kontak pengguna yang Anda pilih saat pengguna mendaftar, atau Anda membuat profil pengguna. Untuk memverifikasi atribut dan mengonfirmasi profil pengguna untuk masuk, Amazon Cognito mengirimkan kode atau tautan dalam pesan ke pengguna. Pengguna kemudian harus memasukkan kode di UI Anda sehingga aplikasi Anda dapat mengonfirmasinya dalam permintaan ConfirmSignUp atau AdminConfirmSignUp API.

    catatan

    Anda juga dapat menonaktifkan verifikasi dan konfirmasi yang dibantu Cognito dan menggunakan tindakan API yang diautentikasi atau pemicu Lambda untuk memverifikasi atribut dan mengonfirmasi pengguna.

    Jika Anda memilih opsi ini, Amazon Cognito tidak mengirim email kode verifikasi ketika pengguna mendaftar. Pilih opsi ini jika Anda menggunakan alur autentikasi kustom yang memverifikasi setidaknya satu metode kontak tanpa menggunakan kode verifikasi dari Amazon Cognito. Sebagai contoh, Anda mungkin menggunakan pemicu pre sign-up Lambda yang secara otomatis memverifikasi alamat email yang termasuk ke domain spesifik.

    Jika Anda tidak memverifikasi informasi kontak pengguna Anda, mereka mungkin tidak dapat menggunakan aplikasi Anda. Ingat bahwa pengguna memerlukan informasi kontak terverifikasi untuk:

    • Setel ulang kata sandi mereka — Saat pengguna memilih opsi di aplikasi Anda yang memanggil tindakan ForgotPassword API, Amazon Cognito mengirimkan kata sandi sementara ke alamat email atau nomor telepon pengguna. Amazon Cognito mengirim kata sandi ini hanya jika pengguna memiliki setidaknya satu metode kontak terverifikasi.

    • Masuk dengan menggunakan alamat email atau nomor telepon sebagai alias — Jika Anda mengonfigurasi kumpulan pengguna untuk mengizinkan alias ini, maka pengguna dapat masuk dengan alias hanya jika alias diverifikasi. Untuk informasi selengkapnya, lihat Menyesuaikan atribut masuk.

  5. Pilih Atribut Anda untuk memverifikasi:

    Kirim pesan SMS, verifikasi nomor telepon

    Amazon Cognito mengirimkan kode verifikasi dalam pesan SMS saat pengguna mendaftar. Pilih opsi ini jika Anda biasanya berkomunikasi dengan pengguna melalui pesan SMS. Sebagai contoh, Anda akan ingin menggunakan nomor telepon terverifikasi jika Anda mengirim pemberitahuan pengiriman, konfirmasi janji temu, atau peringatan. Nomor telepon pengguna akan menjadi atribut terverifikasi ketika akun dikonfirmasi; Anda harus mengambil tindakan tambahan untuk memverifikasi dan berkomunikasi dengan alamat email pengguna.

    Kirim pesan email, verifikasi alamat email

    Amazon Cognito mengirimkan kode verifikasi melalui pesan email saat pengguna mendaftar. Pilih opsi ini jika Anda biasanya berkomunikasi dengan pengguna Anda melalui email. Sebagai contoh, Anda akan ingin menggunakan alamat email terverifikasi jika Anda mengirimkan laporan tagihan, ringkasan pesanan, atau penawaran khusus. Alamat email pengguna akan menjadi atribut terverifikasi ketika akun dikonfirmasi; Anda harus mengambil tindakan tambahan untuk memverifikasi dan berkomunikasi dengan nomor telepon pengguna.

    Kirim pesan SMS jika nomor telepon tersedia, jika tidak, kirim pesan email

    Pilih opsi ini jika Anda tindak memerlukan semua pengguna untuk memiliki metode kontak terverifikasi yang sama. Dalam kasus ini, halaman pendaftaran di aplikasi Anda dapat meminta pengguna untuk memverifikasi hanya metode kontak yang mereka suka. Ketika Amazon Cognito mengirimkan kode verifikasi, ia mengirimkan kode ke metode kontak yang disediakan di permintaan SignUp dari aplikasi Anda. Jika pengguna memberikan alamat email dan nomor telepon, dan aplikasi Anda menyediakan kedua metode kontak di permintaan SignUp, Amazon Cognito mengirimkan kode verifikasi hanya ke nomor telepon.

    Jika Anda mengharuskan pengguna untuk memverifikasi alamat email dan nomor telepon, pilih opsi ini. Amazon Cognito memverifikasi satu metode kontak saat pengguna mendaftar, dan aplikasi Anda harus memverifikasi metode kontak lainnya setelah pengguna masuk. Untuk informasi selengkapnya, lihat Jika Anda meminta pengguna untuk mengonfirmasi alamat email dan nomor telepon.

  6. Pilih Simpan perubahan.

Alur otentikasi dengan verifikasi email atau telepon

Jika kolam pengguna Anda memerlukan pengguna untuk memverifikasi informasi kontak mereka, aplikasi Anda harus memfasilitasi alur berikut ini ketika pengguna mendaftar:

  1. Pengguna mendaftar di aplikasi Anda dengan memasukkan nama pengguna, nomor telepon dan/atau alamat email, dan mungkin atribut lain.

  2. Layanan Amazon Cognito menerima permintaan pendaftaran dari aplikasi. Setelah memverifikasi bahwa permintaan berisi semua atribut yang diperlukan untuk pendaftaran, layanan menyelesaikan proses pendaftaran dan mengirimkan kode konfirmasi ke telepon pengguna (dalam pesan SMS) atau email. Kode ini valid untuk 24 jam

  3. Layanan mengembalikan ke aplikasi bahwa pendaftaran telah selesai dan akun pengguna sedang menunggu konfirmasi. Tanggapan berisi informasi tentang di mana kode konfirmasi dikirim. Pada titik ini akun pengguna berada dalam keadaan tidak terkonfirmasi, dan alamat email dan nomor telepon pengguna tidak terverifikasi.

  4. Aplikasi sekarang dapat meminta pengguna untuk memasukkan kode konfirmasi. Pengguna tidak diharuskan untuk segera memasukkan kode. Namun, pengguna tidak akan bisa masuk sampai setelah mereka memasukkan kode konfirmasi.

  5. Pengguna memasukkan kode konfirmasi di dalam aplikasi.

  6. Aplikasi memanggil ConfirmSignUp untuk mengirim kode ke layanan Amazon Cognito, yang memverifikasi kode dan, jika kode benar, menetapkan akun pengguna ke status terkonfirmasi. Setelah berhasil mengonfirmasi akun pengguna, layanan Amazon Cognito secara otomatis menandai atribut yang digunakan untuk mengonfirmasi (alamat email atau nomor telepon) sebagai diverifikasi. Kecuali nilai atribut ini berubah, pengguna tidak perlu memverifikasinya lagi.

  7. Pada titik ini akun pengguna dalam keadaan dikonfirmasi, dan pengguna dapat masuk.

Jika Anda meminta pengguna untuk mengonfirmasi alamat email dan nomor telepon

Amazon Cognito memverifikasi hanya satu metode kontak ketika pengguna mendaftar. Dalam kasus di mana Amazon Cognito harus memilih antara memverifikasi alamat email atau nomor telepon, ia memilih untuk memverifikasi nomor telepon dengan mengirimkan kode verifikasi melalui pesan SMS. Sebagai contoh, jika Anda mengonfigurasi kolam pengguna Anda untuk mengizinkan pengguna untuk memverifikasi alamat email atau nomor telepon, dan jika aplikasi Anda menyediakan semua dari atribut ini saat pendaftaran, Amazon Cognito hanya memverifikasi nomor telepon. Setelah pengguna memverifikasi nomor teleponnya, Amazon Cognito menyetel status CONFIRMED pengguna, dan pengguna diizinkan untuk masuk ke aplikasi Anda.

Setelah pengguna masuk, aplikasi Anda dapat menyediakan opsi untuk memverikasi metode kontak yang belum terverifikasi selama pendaftaran. Untuk memverifikasi metode kedua ini, aplikasi Anda memanggil tindakan API VerifyUserAttribute. Perhatikan bahwa tindakan ini memerlukan parameter AccessToken, dan Amazon Cognito hanya menyediakan token akses untuk pengguna terautentikasi. Karena itu, Anda dapat memverifikasi metode kontak kedua hanya setelah pengguna masuk.

Jika Anda mengharuskan pengguna untuk memverifikasi alamat email dan nomor telepon, lakukan berikut ini:

  1. Konfigurasikan kolam pengguna Anda untuk mengizinkan pengguna untuk memverifikasi alamat email atau nomor telepon.

  2. Dalam alur pendaftaran untuk aplikasi Anda, haruskan pengguna untuk memberikan alamat email dan nomor telepon. Panggil tindakan API SignUp, dan sediakan alamat email atau nomor telepon untuk parameter UserAttributes. Pada titik ini, Amazon Cognito mengirim kode verifikasi ke telepon pengguna.

  3. Di antarmuka aplikasi Anda, tunjukkan halaman konfirmasi di mana pengguna memasukkan kode verifikasi. Konfirmasi pengguna dengan memanggil tindakan API ConfirmSignUp. Pada titik ini, status pengguna adalah CONFIRMED, dan nomor telepon pengguna terverifikasi, tetapi alamat email tidak terverifikasi.

  4. Tampilkan halaman masuk, dan autentikasi pengguna dengan memanggil tindakan API InitiateAuth. Setelah pengguna terkonfirmasi, Amazon Cognito mengembalikan token akses ke aplikasi Anda.

  5. Panggil tindakan API GetUserAttributeVerificationCode. Tentukan parameter berikut di permintaan:

    • AccessToken – Token akses yang dikembalikan oleh Amazon Cognito saat pengguna masuk.

    • AttributeName – Tentukan "email" sebagai nilai atribut.

    Amazon Cognito mengirimkan kode verifikasi ke alamat email pengguna.

  6. Tunjukkan halaman konfirmasi di mana pengguna memasukkan kode verifikasi. Ketika pengguna memasukka kode, panggil tindakan API VerifyUserAttribute. Tentukan parameter berikut di permintaan:

    • AccessToken – Token akses yang dikembalikan oleh Amazon Cognito saat pengguna masuk.

    • AttributeName – Tentukan "email" sebagai nilai atribut.

    • Code – Kode verifikasi yang diberikan pengguna.

    Pada titik ini, alamat email terverifikasi.

Memungkinkan pengguna untuk mendaftar di aplikasi Anda tetapi mengonfirmasinya sebagai administrator kumpulan pengguna

Anda mungkin tidak ingin kumpulan pengguna Anda secara otomatis mengirim pesan verifikasi di kumpulan pengguna Anda, tetapi tetap ingin mengizinkan siapa pun untuk mendaftar akun. Model ini menyisakan ruang, misalnya, untuk tinjauan manusia atas permintaan pendaftaran baru, dan untuk validasi batch dan pemrosesan pendaftaran. Anda dapat mengonfirmasi akun pengguna baru di konsol Amazon Cognito atau dengan operasi API yang diautentikasi oleh IAM. AdminConfirmSignUp Anda dapat mengonfirmasi akun pengguna sebagai administrator apakah kumpulan pengguna Anda mengirim pesan verifikasi atau tidak.

Anda hanya dapat mengonfirmasi pendaftaran layanan mandiri pengguna dengan teknik ini. Untuk mengonfirmasi pengguna yang Anda buat sebagai administrator, buat permintaan AdminSetUserPasswordAPI dengan Permanent disetel keTrue.

  1. Pengguna mendaftar di aplikasi Anda dengan memasukkan nama pengguna, nomor telepon dan/atau alamat email, dan mungkin atribut lain.

  2. Layanan Amazon Cognito menerima permintaan pendaftaran dari aplikasi. Setelah memverifikasi bahwa permintaan berisi semua atribut yang dibutuhkan untuk pendaftaran, layanan menyelesaikan proses pendaftaran mengembalikan ke aplikasi bahwa pendaftaran telah selesai, menunggu konfirmasi. Pada titik ini akun pengguna dalam keadaan belum dikonfirmasi. Pengguna tidak dapat masuk sebelum akun dikonfirmasi.

  3. Konfirmasikan akun pengguna. Anda harus masuk ke AWS Management Console atau menandatangani permintaan API Anda dengan AWS kredensyal untuk mengonfirmasi akun.

    1. Untuk mengonfirmasi pengguna di konsol Amazon Cognito, navigasikan ke tab Pengguna, pilih pengguna yang ingin Anda konfirmasi, dan dari menu Tindakan pilih Konfirmasi.

    2. Untuk mengonfirmasi pengguna di AWS API atau CLI, buat permintaan AdminConfirmSignUpAPI, atau admin-confirm-sign-updi file. AWS CLI

  4. Pada titik ini akun pengguna dalam keadaan dikonfirmasi, dan pengguna dapat masuk.

Menghitung nilai hash rahasia

Tetapkan rahasia klien ke klien aplikasi rahasia Anda sebagai praktik terbaik. Saat Anda menetapkan rahasia klien ke klien aplikasi, permintaan API kumpulan pengguna Amazon Cognito Anda harus menyertakan hash yang menyertakan rahasia klien di badan permintaan. Untuk memvalidasi pengetahuan Anda tentang rahasia klien untuk operasi API dalam daftar berikut, menggabungkan rahasia klien dengan ID klien aplikasi dan nama pengguna pengguna Anda, lalu base64-encode string tersebut.

Saat aplikasi Anda menandatangani pengguna ke klien yang memiliki hash rahasia, Anda dapat menggunakan nilai atribut login kumpulan pengguna apa pun sebagai elemen nama pengguna dari hash rahasia. Saat aplikasi Anda meminta token baru dalam operasi autentikasi denganREFRESH_TOKEN_AUTH, nilai elemen nama pengguna bergantung pada atribut login Anda. Jika kumpulan pengguna Anda tidak memiliki username atribut login, tetapkan nilai nama pengguna hash rahasia dari sub klaim pengguna dari akses atau token ID mereka. usernameKapan atribut login, atur nilai username hash rahasia dari klaim. username

API kumpulan pengguna Amazon Cognito berikut menerima nilai hash rahasia klien dalam suatu parameter. SecretHash

Selain itu, API berikut menerima nilai hash rahasia klien dalam SECRET_HASH parameter, baik dalam parameter otentikasi atau dalam respons tantangan.

Operasi API Parameter induk untuk SECRET_HASH
InitiateAuth AuthParameters
AdminInitiateAuth AuthParameters
RespondToAuthChallenge ChallengeResponses
AdminRespondToAuthChallenge ChallengeResponses

Nilai hash rahasia adalah kode otentikasi pesan hash kunci (HMAC) yang dikodekan Base 64 yang dihitung menggunakan kunci rahasia klien kumpulan pengguna dan nama pengguna ditambah ID klien dalam pesan. Kode pseudo berikut menunjukkan bagaimana nilai ini dihitung. Dalam kode pseudo ini, + menunjukkan kontegasi, HMAC_SHA256 mewakili fungsi yang menghasilkan nilai HMAC menggunakan HMACSHA256, dan Base64 mewakili fungsi yang menghasilkan versi yang dienkodekan Base-64 dari output hash.

Base64 ( HMAC_SHA256 ( "Client Secret Key", "Username" + "Client Id" ) )

Untuk ikhtisar terperinci tentang cara menghitung dan menggunakan SecretHash parameter, lihat Bagaimana cara memecahkan masalah kesalahan “Tidak dapat memverifikasi hash rahasia untuk klien” dari API kumpulan pengguna Amazon Cognito saya? <client-id> di pusat AWS pengetahuan.

Anda dapat menggunakan contoh kode berikut dalam kode aplikasi sisi server Anda.

Shell
echo -n "[username][app client ID]" | openssl dgst -sha256 -hmac [app client secret] -binary | openssl enc -base64
Java
import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; public static String calculateSecretHash(String userPoolClientId, String userPoolClientSecret, String userName) { final String HMAC_SHA256_ALGORITHM = "HmacSHA256"; SecretKeySpec signingKey = new SecretKeySpec( userPoolClientSecret.getBytes(StandardCharsets.UTF_8), HMAC_SHA256_ALGORITHM); try { Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM); mac.init(signingKey); mac.update(userName.getBytes(StandardCharsets.UTF_8)); byte[] rawHmac = mac.doFinal(userPoolClientId.getBytes(StandardCharsets.UTF_8)); return Base64.getEncoder().encodeToString(rawHmac); } catch (Exception e) { throw new RuntimeException("Error while calculating "); } }
Python
import sys import hmac, hashlib, base64 username = sys.argv[1] app_client_id = sys.argv[2] key = sys.argv[3] message = bytes(sys.argv[1]+sys.argv[2],'utf-8') key = bytes(sys.argv[3],'utf-8') secret_hash = base64.b64encode(hmac.new(key, message, digestmod=hashlib.sha256).digest()).decode() print("SECRET HASH:",secret_hash)

Mengonfirmasi akun pengguna tanpa memverifikasi email atau nomor telepon

Pemicu Lambda pra pendaftaran dapat digunakan untuk mengonfirmasi akun pengguna secara otomatis saat mendaftar, tanpa memerlukan kode konfirmasi atau memverifikasi email atau nomor telepon. Pengguna yang dikonfirmasi dengan cara ini dapat langsung masuk tanpa harus menerima kode.

Anda juga dapat menandai email atau nomor telepon pengguna yang diverifikasi melalui pemicu ini.

catatan

Meskipun pendekatan ini nyaman bagi pengguna saat mereka memulai, kami merekomendasikan verifikasi otomatis setidaknya satu dari email atau nomor telepon. Jika tidak, pengguna dapat terbiarkan tidak dapat memulihkan jika mereka lupa kata sandi mereka.

Jika Anda tidak mengharuskan pengguna untuk menerima dan memasukkan kode konfirmasi saat mendaftar dan Anda tidak memverifikasi email dan nomor telepon secara otomatis di pemicu Lambda sebelum pendaftaran, Anda berisiko tidak memiliki alamat email atau nomor telepon terverifikasi untuk akun pengguna tersebut. Pengguna dapat memverifikasi alamat email atau nomor telepon di lain waktu. Namun, jika pengguna lupa kata sandinya dan tidak memiliki alamat email atau nomor telepon yang diverifikasi, pengguna dikunci dari akun, karena alur lupa kata sandi memerlukan email atau nomor telepon yang diverifikasi untuk mengirim kode verifikasi kepada pengguna.

Memverifikasi kapan pengguna mengubah email atau nomor telepon mereka

Saat pengguna memperbarui alamat email atau nomor teleponnya di aplikasi Anda, Amazon Cognito segera mengirimkan pesan dengan kode verifikasi ke pengguna jika Anda mengonfigurasi kumpulan pengguna untuk memverifikasi atribut tersebut secara otomatis. Pengguna kemudian harus memberikan kode dari pesan verifikasi ke aplikasi Anda. Aplikasi Anda kemudian mengirimkan kode dalam permintaan VerifyUserAttributeAPI untuk menyelesaikan verifikasi nilai atribut baru.

Jika kumpulan pengguna Anda tidak mengharuskan pengguna memverifikasi alamat email atau nomor telepon yang diperbarui, Amazon Cognito segera mengubah nilai phone_number atribut email atau yang diperbarui dan menandai atribut sebagai belum diverifikasi. Pengguna Anda tidak dapat masuk dengan email atau nomor telepon yang belum diverifikasi. Mereka harus menyelesaikan verifikasi nilai yang diperbarui sebelum mereka dapat menggunakan atribut itu sebagai alias masuk.

Jika kumpulan pengguna Anda mengharuskan pengguna memverifikasi alamat email atau nomor telepon yang diperbarui, Amazon Cognito menyimpan atribut tersebut diverifikasi dan disetel ke nilai aslinya hingga pengguna Anda memverifikasi nilai atribut baru. Jika atribut adalah alias untuk login, pengguna Anda dapat masuk dengan nilai atribut asli hingga verifikasi mengubah atribut ke nilai baru. Untuk informasi selengkapnya tentang cara mengonfigurasi kumpulan pengguna agar pengguna mengharuskan pengguna memverifikasi atribut yang diperbarui, lihat Mengonfigurasi verifikasi email atau telepon.

Anda dapat menggunakan pemicu Lambda pesan khusus untuk menyesuaikan pesan verifikasi. Untuk informasi selengkapnya, lihat Pesan khusus Lambda pemicu. Jika alamat email atau nomor telepon pengguna tidak diverifikasi, aplikasi Anda harus memberi tahu pengguna bahwa mereka harus memverifikasi atribut, dan memberikan tombol atau tautan bagi pengguna untuk memverifikasi alamat email atau nomor telepon baru mereka.

Proses konfirmasi dan verifikasi untuk akun pengguna yang dibuat oleh administrator atau pengembang

Akun pengguna yang dibuat oleh administrator atau developer sudah dalam status terkonfirmasi, sehingga pengguna tidak perlu memasukkan kode konfirmasi. Pesan undangan yang dikirimkan layanan Amazon Cognito kepada pengguna ini mencakup nama pengguna dan kata sandi sementara. Pengguna diharuskan untuk mengubah kata sandi sebelum masuk. Untuk informasi lebih lanjut, lihat Sesuaikan pesan email dan SMS di Membuat akun pengguna sebagai administrator dan pemicu Pesan Kustom di Menyesuaikan alur kerja kumpulan pengguna dengan pemicu Lambda.

Proses konfirmasi dan verifikasi untuk akun pengguna yang diimpor

Akun pengguna yang dibuat dengan menggunakan fitur impor pengguna di AWS Management Console, CLI, atau API (lihatMengimpor pengguna ke kumpulan pengguna dari file CSV) sudah dalam status terkonfirmasi, sehingga pengguna tidak diharuskan memasukkan kode konfirmasi. Tidak ada pesan undangan yang dikirim. Namun, akun pengguna yang diimpor mengharuskan pengguna untuk meminta kode terlebih dahulu dengan memanggil API ForgotPassword dan kemudian membuat kata sandi menggunakan kode yang dikirimkan dengan memanggil API ConfirmForgotPassword sebelum mereka masuk. Untuk informasi lebih lanjut, lihat Mengharuskan pengguna yang diimpor untuk mengatur ulang kata sandi mereka.

Email atau nomor telepon pengguna harus ditandai sebagai terverifikasi saat akun pengguna diimpor, jadi tidak diperlukan verifikasi saat pengguna masuk.

Mengirim email saat menguji aplikasi

Amazon Cognito mengirimkan pesan email ke pengguna Anda saat mereka membuat dan mengelola akun mereka di aplikasi klien untuk kumpulan pengguna Anda. Jika Anda mengonfigurasi kolam pengguna Anda agar memerlukan verifikasi email, Amazon Cognito akan mengirimkan email saat:

  • Pengguna mendaftar.

  • Pengguna memperbarui alamat email mereka.

  • Pengguna melakukan tindakan yang memanggil tindakan API ForgotPassword.

  • Anda membuat akun pengguna sebagai administrator.

Tergantung pada tindakan yang memulai email, email berisi kode verifikasi atau kata sandi sementara. Pengguna Anda harus menerima email ini dan memahami pesannya. Jika tidak, mereka mungkin tidak dapat masuk dan menggunakan aplikasi Anda.

Untuk memastikan bahwa email berhasil dikirim dan pesan terlihat benar, uji tindakan di aplikasi Anda yang memulai pengiriman email dari Amazon Cognito. Sebagai contoh, dengan menggunakan halaman pendaftaran di aplikasi Anda, atau dengan menggunakan tindakan API SignUp, Anda dapat memulai email dengan mendaftar dengan alamat email percobaan. Saat Anda menguji dengan cara ini, ingat hal berikut:

Penting

Saat Anda menggunakan alamat email untuk menguji tindakan yang memulai email dari Amazon Cognito, jangan gunakan alamat email palsu (yang tidak memiliki kotak pesan). Gunakan alamat email asli yang akan menerima email dari Amazon Cognito tanpa membuat pentalan keras.

Pentalan keras terjadi saat Amazon Cognito gagal mengirim email ke kotak pesan penerima, yang selalu terjadi jika kotak pesan tidak ada.

Amazon Cognito membatasi jumlah email yang dapat dikirim oleh AWS akun yang terus-menerus menimbulkan pantulan keras.

Ketika Anda menguji tindakan yang memulai email, gunakan salah satu alamat email berikut untuk mencegah pentalan keras:

  • Alamat untuk akun email yang Anda miliki dan gunakan untuk pengujian. Bila Anda menggunakan alamat email Anda sendiri, Anda menerima email yang dikirim Amazon Cognito. Dengan email ini, Anda dapat menggunakan kode verifikasi untuk menguji pengalaman pendaftaran di dalam aplikasi Anda. Jika Anda menyesuaikan pesan email untuk kolam pengguna Anda, Anda dapat memeriksa apakah penyesuaian Anda terlihat sesuai.

  • Alamat simulator kotak surat, success@simulator.amazonses.com. Jika Anda menggunakan alamat simulator, Amazon Cognito mengirimkan email dengan sukses, tetapi Anda tidak dapat melihatnya. Opsi ini berguna ketika Anda tidak perlu menggunakan kode verifikasi dan Anda tidak perlu memeriksa pesan email.

  • Alamat simulator kotak surat dengan tambahan label arbitrer, seperti success+user1@simulator.amazonses.com atau success+user2@simulator.amazonses.com. Amazon Cognito berhasil mengirim email ke alamat-alamat ini, tetapi Anda tidak dapat melihat email yang dikirimkannya. Opsi ini berguna saat Anda ingin menguji proses pendaftaran dengan menambahkan beberapa pengguna uji ke kolam pengguna Anda, dan setiap pengguna uji memiliki alamat email unik.