簡體   English   中英

如何在不驗證電子郵件或電話的情況下確認 Cognito 用戶池中的用戶?

[英]How to confirm user in Cognito User Pools without verifying email or phone?

我正在使用 適用於 JavaScript 的 Amazon Cognito 身份開發工具包(已棄用)。

我在沒有驗證電子郵件和電話號碼的情況下創建了新池。

默認情況下,不會在 Cognito 用戶池中確認用戶,因此我需要手動執行此操作。

如何在不驗證電子郵件或電話的情況下確認 Cognito 用戶池中的用戶?

我希望這會幫助別人。

為此,您可以添加此Lambda函數:

exports.handler = (event, context, callback) => {
    event.response.autoConfirmUser = true;
    event.response.autoVerifyEmail = true;  // this is NOT needed if e-mail is not in attributeList
    event.response.autoVerifyPhone = true;  // this is NOT needed if phone # is not in attributeList
    context.done(null, event);
};

然后導航到AWS Cognito的常規設置>>觸發器並將此Lambda函數添加到“預注冊” - 單擊下拉列表並選擇帶有上述代碼的Lambda函數。

如果您只使用'preferred_username'(如果沒有使用電子郵件或電話號碼),則將event.response.autoConfirmUser設置為true即可。

實際上,AWS最近還添加了驗證電子郵件和驗證預注冊 lambda中的電話號碼的功能 你基本上需要在lambda中設置autoVerifyEmailautoVerifyPhone ,他們將得到驗證。 官方文檔中的更多信息。

"response": {
    "autoConfirmUser": boolean
    "autoVerifyEmail": boolean
    "autoVerifyPhone": boolean
}

我認為接受的答案是有問題的。 OP 的問題是如何在不驗證用戶電子郵件的情況下確認用戶。 但該解決方案驗證用戶的電子郵件。

如果您想使用未經驗證的電子郵件(或電話)確認用戶,您可以使用AdminConfirmSignUpCommand 根據官方文檔,這是在不讓用戶這樣做的情況下確認用戶的預期方式:

在此處輸入圖片說明

ConfirmSignUpCommand不同, AdminConfirmSignUpCommand不需要代碼。 您可以在 API 中注冊后或作為自定義消息觸發器(在發送電子郵件時有效確認用戶)后實施此命令。

現在,用戶可以登錄,但仍必須確認電子郵件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM