自訂一次性密碼傳送流程
如果您使用自訂一次性密碼 (OTP) 傳送提供者而非 Salesforce 預設提供者,則您的提供者會將 OTP 訊息傳送給一般使用者。
必要版本
| 提供版本:Salesforce Classic (並非所有組織皆適用) 和 Lightning Experience |
| 提供版本:Professional、Enterprise、Unlimited及 Developer Edition |
自訂 OTP 傳送依賴實作 Auth.CustomOneTimePasswordDeliveryHandler 介面的 Apex 處理常式。介面使用 sendOneTimePassword 方法,您可在此傳入多個參數,包括 Salesforce 產生的 OTP、使用者的電話號碼、使用者識別碼和 Experience Cloud 網站識別碼等其他參數。您可以使用自訂程式碼來撰寫訊息的內容。若要傳送訊息,您的處理常式會對在提供者上主控的傳訊端點進行 API 呼叫,然後處理回應。
只要您要求外部使用者使用 SMS 驗證其身分,便可開始此流程。進入點取決於您的使用個案。這些使用個案支援透過 SMS 進行身分驗證。
例如,如果您使用無密碼登入,則此流程會在使用者前往您的 Experience Cloud 網站登入頁面並輸入其電話號碼以登入時開始。
- Salesforce 會在自訂 OTP 傳送 Apex 處理常式中呼叫
sendOneTimePassword方法。 - 您的 Apex 實作使用
sendOneTimePassword方法將已驗證的要求傳送至提供者的呼叫端點。要求包含使用者的識別碼、其電話號碼、訊息內容、Salesforce OTP,以及提供者需要的任何其他參數。
備註 您的 Apex 實作負責連線至提供者並傳送 SMS 訊息。Salesforce 預設不提供此功能。 - 提供者傳回回應,您的 Apex 處理常式會 ⁇ 取並處理回應。您處理回應的方式取決於您的提供者。
- 如果回應成功,則您的處理常式會傳回
Auth.CustomOneTimePasswordDeliveryResult列舉值SUCCESS。 - 提供者會將 OTP 傳送至使用者的電話號碼。
- 使用者在您的 Experience Cloud 網站驗證表單中輸入 OTP。
- Salesforce 驗證 OTP。此步驟取決於您的使用個案。例如,針對無密碼登入,您可以在
System.UserManagement類別中使用verifyPasswordlessLogin方法。 - 使用者的身分會登入或註冊,視您的使用個案而定。
此文章是否解決您的問題?
請讓我們知道,以便我們改進!

