Pesan khusus Lambda pemicu - Amazon Cognito

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

Pesan khusus Lambda pemicu

Amazon Cognito memanggil pemicu ini sebelum mengirim email atau pesan verifikasi telepon atau kode otentikasi multi-faktor (MFA). Anda dapat menyesuaikan pesan secara dinamis dengan pemicu pesan khusus Anda. Anda dapat mengedit pesan kustom statis di tab Penyesuaian pesan di konsol Amazon Cognito asli.

Permintaan termasukcodeParameter. Ini adalah string yang bertindak sebagai pengganti untuk kode yang diberikan Amazon Cognito kepada pengguna. Masukkan codeParameter string ke badan pesan tempat Anda ingin kode verifikasi muncul. Saat Amazon Cognito menerima respons ini, Amazon Cognito mengganti string dengan kode verifikasi codeParameter yang sebenarnya.

catatan

Fungsi Lambda pesan khusus dengan sumber CustomMessage_AdminCreateUser pemicu mengembalikan nama pengguna dan kode verifikasi. Karena pengguna yang dibuat admin harus menerima nama pengguna dan kode mereka, respons dari fungsi Anda harus menyertakan keduanya dan. request.usernameParameter request.codeParameter

Pesan khusus Lambda memicu sumber

Nilai triggerSource Peristiwa
CustomMessage_SignUp Pesan kustom – Untuk mengirim kode konfirmasi pasca pendaftaran.
CustomMessage_AdminCreateUser Pesan kustom – Untuk mengirim kata sandi sementara ke pengguna baru.
CustomMessage_ResendCode Pesan kustom – Untuk mengirim ulang kode konfirmasi ke pengguna yang sudah ada.
CustomMessage_ForgotPassword Pesan kustom – Untuk mengirim kode konfirmasi untuk permintaan Lupa Kata Sandi.
CustomMessage_UpdateUserAttribute Pesan kustom – Ketika email atau nomor telepon pengguna diubah, pemicu ini mengirimkan kode verifikasi secara otomatis kepada pengguna. Tidak dapat digunakan untuk atribut lainnya.
CustomMessage_VerifyUserAttribute Pesan kustom – Pemicu ini mengirimkan kode verifikasi kepada pengguna ketika mereka memintanya secara manual untuk email atau nomor telepon baru.
CustomMessage_Authentication Pesan kustom – Untuk mengirim kode otentikasi multifaktor (MFA) selama autentikasi.

Parameter pemicu Lambda pesan khusus

Permintaan yang diteruskan Amazon Cognito ke fungsi Lambda ini adalah kombinasi dari parameter di bawah ini dan parameter umum yang ditambahkan Amazon Cognito ke semua permintaan.

JSON
{ "request": { "userAttributes": { "string": "string", . . . } "codeParameter": "####", "usernameParameter": "string", "clientMetadata": { "string": "string", . . . } }, "response": { "smsMessage": "string", "emailMessage": "string", "emailSubject": "string" } }

Parameter permintaan pesan khusus

userAttributes

Satu atau lebih pasangan nilai-nama yang mewakili atribut pengguna.

codeParameter

String untuk Anda gunakan sebagai pengganti kode verifikasi dalam pesan kustom.

usernameParameter

Nama pengguna. Amazon Cognito menyertakan parameter ini dalam permintaan yang dihasilkan dari pengguna yang dibuat admin.

clientMetadata

Satu atau lebih pasangan nilai-kunci yang dapat Anda berikan sebagai masukan kustom ke fungsi Lambda yang Anda tentukan untuk pemicu pesan kustom. Permintaan yang memanggil fungsi pesan khusus tidak menyertakan data yang diteruskan dalam ClientMetadata parameter AdminInitiateAuthdan operasi InitiateAuthAPI. Untuk meneruskan data ini ke fungsi Lambda, Anda dapat menggunakan ClientMetadata parameter dalam tindakan API berikut:

Parameter respons pesan khusus

Dalam respons, tentukan teks kustom yang akan digunakan dalam pesan kepada pengguna Anda. Untuk batasan string yang diterapkan Amazon Cognito pada parameter ini, lihat. MessageTemplateType

smsMessage

Pesan SMS kustom yang akan dikirim ke pengguna Anda. Harus menyertakan codeParameter nilai yang Anda terima dalam permintaan.

emailMessage

Pesan email khusus untuk dikirim ke pengguna Anda. Anda dapat menggunakan pemformatan HTML dalam emailMessage parameter. Harus menyertakan codeParameter nilai yang Anda terima dalam permintaan sebagai variabel{####}. Amazon Cognito dapat menggunakan emailMessage parameter hanya jika EmailSendingAccount atribut kumpulan pengguna adalah. DEVELOPER Jika EmailSendingAccount atribut kumpulan pengguna tidak DEVELOPER dan emailMessage parameter dikembalikan, Amazon Cognito menghasilkan kode kesalahan 400. com.amazonaws.cognito.identity.idp.model.InvalidLambdaResponseException Saat Anda memilih Amazon Simple Email Service (Amazon SES) untuk mengirim pesan email, EmailSendingAccount atribut kumpulan DEVELOPER pengguna adalah. Kalau tidak, nilainya adalahCOGNITO_DEFAULT.

emailSubject

Baris subjek untuk pesan kustom. Anda hanya dapat menggunakan emailSubject parameter jika EmailSendingAccount atribut kumpulan pengguna adalahDEVELOPER. Jika EmailSendingAccount atribut kumpulan pengguna tidak DEVELOPER dan Amazon Cognito mengembalikan emailSubject parameter, Amazon Cognito akan menghasilkan kode kesalahan 400. com.amazonaws.cognito.identity.idp.model.InvalidLambdaResponseException EmailSendingAccountAtribut kumpulan pengguna adalah DEVELOPER ketika Anda memilih untuk menggunakan Amazon Simple Email Service (Amazon SES) untuk mengirim pesan email. Kalau tidak, nilainya adalahCOGNITO_DEFAULT.

Pesan khusus untuk contoh pendaftaran

Contoh fungsi Lambda ini menyesuaikan pesan email atau SMS saat layanan memerlukan aplikasi untuk mengirim kode verifikasi kepada pengguna.

Amazon Cognito dapat memanggil pemicu Lambda di beberapa acara: pasca-pendaftaran, mengirim ulang kode verifikasi, memulihkan kata sandi yang terlupakan, atau memverifikasi atribut pengguna. Respons mencakup pesan untuk SMS dan email. Pesan harus menyertakan parameter kode"####". Parameter ini adalah placeholder untuk kode verifikasi yang diterima pengguna.

Panjang maksimum untuk pesan email adalah 20.000 karakter UTF-8. Panjang ini termasuk kode verifikasi. Anda dapat menggunakan tag HTML dalam pesan email ini.

Panjang maksimum pesan SMS adalah 140 karakter UTF-8. Panjang ini termasuk kode verifikasi.

Node.js
const handler = async (event) => { if (event.triggerSource === "CustomMessage_SignUp") { const message = `Thank you for signing up. Your confirmation code is ${event.request.codeParameter}.`; event.response.smsMessage = message; event.response.emailMessage = message; event.response.emailSubject = "Welcome to the service."; } return event; }; export { handler };

Amazon Cognito meneruskan informasi peristiwa ke fungsi Lambda Anda. Fungsi kemudian mengembalikan objek acara yang sama ke Amazon Cognito, dengan perubahan apa pun dalam respons. Di konsol Lambda, Anda dapat mengatur peristiwa pengujian dengan data yang relevan dengan pemicu Lambda Anda. Berikut ini adalah peristiwa pengujian untuk sampel kode ini:

JSON
{ "version": 1, "triggerSource": "CustomMessage_SignUp/CustomMessage_ResendCode/CustomMessage_ForgotPassword/CustomMessage_VerifyUserAttribute", "region": "<region>", "userPoolId": "<userPoolId>", "userName": "<userName>", "callerContext": { "awsSdk": "<calling aws sdk with version>", "clientId": "<apps client id>", ... }, "request": { "userAttributes": { "phone_number_verified": false, "email_verified": true, ... }, "codeParameter": "####" }, "response": { "smsMessage": "<custom message to be sent in the message with code parameter>" "emailMessage": "<custom message to be sent in the message with code parameter>" "emailSubject": "<custom email subject>" } }

Pesan kustom untuk admin membuat contoh pengguna

Permintaan yang dikirimkan Amazon Cognito ke contoh pesan khusus ini fungsi Lambda memiliki triggerSource nilai dan nama pengguna CustomMessage_AdminCreateUser dan kata sandi sementara. Fungsi ini mengisi ${event.request.codeParameter} dari kata sandi sementara dalam permintaan, dan ${event.request.usernameParameter} dari nama pengguna dalam permintaan.

Pesan kustom Anda harus menyisipkan nilai codeParameter smsMessage dan usernameParameter ke emailMessage dalam dan di objek respons. Dalam contoh ini, fungsi menulis pesan yang sama ke bidang respons event.response.smsMessage danevent.response.emailMessage.

Panjang maksimum pesan email adalah 20.000 karakter UTF-8. Panjang ini termasuk kode verifikasi. Anda dapat menggunakan tag HTML di email ini. Panjang maksimum pesan SMS adalah 140 karakter UTF-8. Panjang ini termasuk kode verifikasi.

Respons mencakup pesan untuk SMS dan email.

Node.js
const handler = async (event) => { if (event.triggerSource === "CustomMessage_AdminCreateUser") { const message = `Welcome to the service. Your user name is ${event.request.usernameParameter}. Your temporary password is ${event.request.codeParameter}`; event.response.smsMessage = message; event.response.emailMessage = message; event.response.emailSubject = "Welcome to the service"; } return event; }; export { handler }

Amazon Cognito meneruskan informasi peristiwa ke fungsi Lambda Anda. Fungsi kemudian mengembalikan objek acara yang sama ke Amazon Cognito, dengan perubahan apa pun dalam respons. Di konsol Lambda, Anda dapat mengatur peristiwa pengujian dengan data yang relevan dengan pemicu Lambda Anda. Berikut ini adalah peristiwa pengujian untuk sampel kode ini:

JSON
{ "version": 1, "triggerSource": "CustomMessage_AdminCreateUser", "region": "<region>", "userPoolId": "<userPoolId>", "userName": "<userName>", "callerContext": { "awsSdk": "<calling aws sdk with version>", "clientId": "<apps client id>", ... }, "request": { "userAttributes": { "phone_number_verified": false, "email_verified": true, ... }, "codeParameter": "####", "usernameParameter": "username" }, "response": { "smsMessage": "<custom message to be sent in the message with code parameter and username parameter>" "emailMessage": "<custom message to be sent in the message with code parameter and username parameter>" "emailSubject": "<custom email subject>" } }