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

triggerSource nilai 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 MFA kode selama otentikasi.

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 kustom tidak menyertakan data yang diteruskan dalam ClientMetadata parameter AdminInitiateAuthdan InitiateAuthAPIoperasi. Untuk meneruskan data ini ke fungsi Lambda Anda, Anda dapat menggunakan ClientMetadata parameter dalam tindakan berikut: API

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

SMSPesan 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 HTML pemformatan 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 (AmazonSES) untuk mengirim pesan email, EmailSendingAccount atribut kumpulan pengguna adalahDEVELOPER. 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 (AmazonSES) untuk mengirim pesan email. Kalau tidak, nilainya adalahCOGNITO_DEFAULT.

Pesan khusus untuk contoh pendaftaran

Contoh fungsi Lambda ini menyesuaikan email atau SMS pesan 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 termasuk pesan untuk keduanya 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 UTF -8 karakter,. Panjang ini termasuk kode verifikasi. Anda dapat menggunakan HTML tag dalam pesan email ini.

Panjang maksimum SMS pesan adalah 140 UTF -8 karakter. 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", "region": "us-west-2", "userPoolId": "us-west-2_EXAMPLE", "userName": "test-user", "callerContext": { "awsSdkVersion": "aws-sdk-unknown-unknown", "clientId": "1example23456789" }, "triggerSource": "CustomMessage_SignUp", "request": { "userAttributes": { "sub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "cognito:user_status": "CONFIRMED", "email_verified": "true", "phone_number_verified": "true", "phone_number": "+12065551212", "email": "test-user@example.com" }, "codeParameter": "{####}", "linkParameter": "{##Click Here##}", "usernameParameter": "None" }, "response": { "smsMessage": "None", "emailMessage": "None", "emailSubject": "None" } }

Pesan kustom untuk admin membuat contoh pengguna

Permintaan yang dikirim 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 UTF -8 karakter. Panjang ini termasuk kode verifikasi. Anda dapat menggunakan HTML tag di email ini. Panjang maksimum SMS pesan adalah 140 UTF -8 karakter. Panjang ini termasuk kode verifikasi.

Respons termasuk pesan untuk keduanya 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>" } }