UserManagement クラス
名前空間
使用方法
ユーザが ID 検証方法を登録および登録解除できます。パスワードなしのログインおよびセルフ登録用のカスタムログインページおよび検証ページを作成します。ユーザを登録する前に携帯電話番号を適切な形式に変換します。Salesforce が個人情報の削除をユーザから要求されたときに、ユーザデータをスクランブルします。
このクラスは、API バージョン 43.0 以降で使用できます。
UserManagement メソッド
UserManagement のメソッドは次のとおりです。
deregisterVerificationMethod(userId, method)
署名
public static void deregisterVerificationMethod(Id userId, Auth.VerificationMethod method)
パラメータ
- userId
- 型: Id
- 検証方法の登録を解除しているユーザのユーザ ID。
- method
- 型: Auth.VerificationMethod
- ユ��ザの ID の検証に使用する検証方法。
戻り値
型: void
使用方法
このメソッドを使用して、既存の ID 検証方法の登録を解除します。たとえば、ユーザは電話番号が変更されたときに、電話番号の登録を解除できます。ID 検証方法を登録できるのはエンドユーザのみですが、登録の解除は開発者とユーザが実行できます。カスタム登録ページを実装するときは、この動作に留意してください。
このメソッドは API バージョン 43.0 以降で使用できます。
formatPhoneNumber(countryCode, phoneNumber)
署名
global static String formatPhoneNumber(String countryCode, String phoneNumber)
パラメータ
使用方法
このメソッドを使用して、ユーザの携帯電話番号が Salesforce で要求される形式になるようにします。次に、このメソッドの戻り値を使用して、ユーザのレコードの mobile 項目を更新します。この携帯番号は SMS ベースのデバイスの有効化に使用されます。たとえば、携帯電話番号は他の ID 検証方法と共に Auth.VerificationMethod 列挙に保存されます。このメソッドは、API バージョン 43.0 で導入されました。以前のバージョンでは使用できません。
ユーザが携帯番号の入力時に使用できる形式を次にいくつか示します。
- +1, (415) 555-1234 (+ 記号、括弧、ダッシュを含む)
- 1, 4155551234 (数字のみで記号を含まない)
- 1 , 415-555-1234 (余分なスペース)
次の例を考えてみます。
- 正しい例:
- formatPhoneNumber('1', '4155551234');
- formatPhoneNumber('+1','(415) 555-1234');
- formatPhoneNumber('1', '415-555-1234');
- 国コードと携帯番号が分かれているため、正しくない例:
- formatPhoneNumber(null, '+1 415-555-1234');
- エラーは発生しないが、適切に機能しない可能性が高い例:
- formatPhoneNumber('+1', '+1 (415) 555-1234');
formatPhoneNumber コードの例
formatPhoneNumber メソッドを使用したコードの例を次に示します。ユーザの携帯番号を取得し、それを Salesforce で要求される形式に変換します。次に、書式設定された携帯番号でユーザのレコードを更新します。
1global with sharing class PhoneRegistrationController {
2 //Input variables
3 global String countryCode {get; set;}
4 global String phoneNumber {get; set;}
5
6 global String addPhoneNumber()
7 {
8 if(countryCode == null) return 'Country code is required';
9 if(phoneNumber == null) return 'Phone number is required';
10
11 String userId = UserInfo.getUserId();
12 User u = [SELECT Id FROM User WHERE Id=:userId LIMIT 1];
13 String formatNum = System.UserManagement.formatPhoneNumber(countryCode, phoneNumber);
14 u.MobilePhone = formatNum;
15 update u;
16 return null;
17 }
18
19}国コードと電話番号が分かれていれば、formatPhoneNumber は適切な形式で値を返します。
initPasswordlessLogin(userId, method)
署名
public static String initPasswordlessLogin(Id userId, Auth.VerificationMethod method)
パラメータ
- userId
- 型: Id
- ログインするユーザの ID。
- method
- 型: Auth.VerificationMethod
- ユーザの ID を検証するために使用される方法。EMAIL または SMS。
使用方法
まず、initPasswordlessLogin メソッドをコールし、認証チャレンジを開始します。このメソッドは次のように動作します。
- ログインページから EMAIL や SMS などのユーザ ID と検証方法を取得します。
- ユーザを参照し、そのユーザが一意で有効であることを確認します。
- ユーザに確認コードを送信します。
- 検証試行のエントリを ID 検証履歴ログに追加し、検証試行に ID を割り当てて、状況を [ユーザによる確認コードの入力を待機中] に設定します。
- パスワードなしログインのエントリをログイン履歴ログに追加します。
- ID を verifyPasswordlessLogin に返して、トランザクションをリンクします。
次に、verifyPasswordlessLogin をコールします。これにより、ユーザが確認コードを正しく入力した場合は、ユーザがログインされます。
initRegisterVerificationMethod(method)
署名
public static String initRegisterVerificationMethod(Auth.VerificationMethod method)
パラメータ
- method
- 型: Auth.VerificationMethod
- ユーザの ID を検証するために使用される方法。EMAIL または SMS。
戻り値
型: String
このメソッドがエラーメッセージを返すのは、電話番号がすでに登録されている場合、ユーザが顧客またはパートナーでない場合、またはコンテキストが Experience Cloud サイトでない場合です。
使用方法
このメソッドと、対応する verifyRegisterVerificationMethod を併用すると、Visualforce 検証ページを使用して、ユーザの検証方法の登録プロセスをカスタマイズできます。
最初に initRegisterVerificationMethod メソッドをコールし、ユーザに入力として送信される確認コードを取得して検証します。確認コードが有効でない場合は、エラーメッセージが返されます。
例
ユーザの電話番号を検証方法として登録するコードの例を次に示します。ユーザが Visualforce ページで確認コードを入力すると、registerUser() が呼び出されます。このメソッドは、検証方法とユーザの電話番号を登録するユーザのユーザ ID を取得します。また、ユーザの登録状況を取得して、電話番号がすでに検証されているかどうかを検査します。ユーザが別の電話番号で登録されている場合は、その電話番号が更新されます。
1public void registerUser() {
2 try {
3 exceptionText='';
4 String userId = UserInfo.getUserId();
5 User u = [Select MobilePhone, Id from User Where Id=:userId];
6 currPhone = u.MobilePhone;
7 mobilePhone = getFormattedSms(mobilePhone);
8 if (mobilePhone != null && mobilePhone != '') {
9 u.MobilePhone = mobilePhone;
10 update u;
11 // We're updating the email and phone number before verifying. Roll back
12 // the change in the verify API if it is unsuccessful.
13 exceptionText = System.
14 UserManagement.initRegisterVerificationMethod(Auth.VerificationMethod.SMS);
15 if(exceptionText!= null && exceptionText!=''){
16 isInit = false;
17 showInitException = true;
18 } else {
19 isInit = false;
20 isVerify = true;
21 }
22 } else {
23 showInitException = true;
24 }
25 } catch (Exception e) {
26 exceptionText = e.getMessage();
27 isInit = false;
28 showInitException = true;
29 }
30 }
31
32public void verifyUser() {
33 // Take the user’s input for the code sent to their phone number
34 exceptionText = System.UserManagement.
verifyRegisterVerificationMethod(code, Auth.VerificationMethod.SMS);
35 if(exceptionText != null && exceptionText !=''){
36 showInitException = true;
37 } else {
38 //Success
39 }
40}initSelfRegistration(method, user)
署名
public static String initSelfRegistration(Auth.VerificationMethod method, User user)
パラメータ
- method
- 型: Auth.VerificationMethod
- ユーザの ID を検証するために使用される方法。EMAIL または SMS。
- user
- 型: User
- 登録の成功後に挿入されるユーザオブジェクト。
使用方法
デフォルトでは、ユーザがメールアドレスまたは電話番号で Experience Cloud サイトにサインアップすると、Salesforce から検証コードが送信されます。同時に、ユーザが ID を確認できる検証ページが生成されます。デフォルトの Salesforce 検証ページを独自の Visualforce ページに置き換えて、検証プロセスを呼び出すことができます。
このメソッドを呼び出すと、認証チャレンジが開始されます。登録が成功した場合は、挿入する User オブジェクトを含めます。このメソッドでは、試行されたセルフ登録の ID が返されます。
次に、verifySelfRegistration をコールします。これにより、ユーザが確認コードを正しく入力した場合は、ユーザがログインされます。
例
次のコードには、新しいユーザを登録するための検証の結果が含まれています。
1String id = System.UserManagement.initSelfRegistration
2 (Auth.VerificationMethod.SMS, user);
3 Auth.VerificationResult res = System.UserManagement.verifySelfRegistration
4 (Auth.VerificationMethod.SMS, id, ‘123456’, null);
5 if(res.success == true){
6 //redirect
7}initVerificationMethod(method)
署名
public static String initVerificationMethod(Auth.VerificationMethod method)
パラメータ
- method
- 型: Auth.VerificationMethod
- EMAIL、SMS、SALESFORCE_AUTHENTICATOR などの検証方法の検証サービスを開始するために使用するメソッド。
使用方法
このメソッドと、対応する verifyVerificationMethod を一緒に使用することで、EMAIL、SMS、SALESFORCE_AUTHENTICATOR などの検証メソッドの検証サービスをカスタマイズできます。initVerificationMethod から返された識別子は、verifyVerificationMethod に渡す必要があります。
最初に initVerificationMethod メソッドを呼び出して、確認コードをユーザのメールアドレスまたは電話番号に送信するか、プッシュ通知を Salesforce Authenticator に送信します。次に、ユーザは、コードを入力するか、プッシュ通知を承認します。確認コードが有効でない場合、またはプッシュ通知が承認されない場合、エラーメッセージが返されます。
メールの例
この例では、メールを使用した多要素認証の例を示します。
1public void initVerification() {
2// user will receive code on their registered verified email
3 identifier = UserManagement.initVerificationMethod(Auth.VerificationMethod.EMAIL);
4}
5
6public Auth.VerificationResult verifyVerification() {
7// requiring identifier from the initVerification
8// the code will need to be entered in this method
9return UserManagement.verifyVerificationMethod(identifier, code , Auth.VerificationMethod.EMAIL);
10}initVerificationMethod(method, actionName, extras)
署名
public static String initVerificationMethod(Auth.VerificationMethod method, String actionName, Map<String,String> extras)
パラメータ
- method
- 型: Auth.VerificationMethod
- EMAIL、SMS、SALESFORCE_AUTHENTICATOR などの検証方法の検証サービスを開始するために使用するメソッド。
- actionName
- 型: String
- Connect to My Salesforce Org などの Salesforce Authenticator に表示するアクションの名前 (SALESFORCE_AUTHENTICATOR 検証メソッドの場合のみ)。デフォルトアクション名は Apex-Defined Activity です。
- extras
- 型: Map<String,String>
-
SALESFORCE_AUTHENTICATOR 検証メソッドの場合のみ、次の追加の設定があります。
- secure_device_required – true に設定すると、ユーザのデバイスをセキュリティで保護する必要があります。たとえば、ユーザは要求を承認するためにデバイスのパスコードを入力する必要があります。デフォルト設定は false です。
- challenge_required – true に設定した場合、ユーザは要求を承認するために、デバイスで顔認識などの生体認証の検証を完了する必要があります。デフォルト設定は false です。
使用方法
このメソッドと、対応する verifyVerificationMethod を一緒に使用することで、EMAIL、SMS、SALESFORCE_AUTHENTICATOR などの検証メソッドの検証サービスをカスタマイズできます。initVerificationMethod から返された識別子は、verifyVerificationMethod メソッドに渡す必要があります。
最初に initVerificationMethod メソッドを呼び出して、確認コードをユーザのメールアドレスまたは電話番号に送信するか、プッシュ通知を Salesforce Authenticator に送信します。次に、ユーザは、コードを入力するか、プッシュ通知を承認します。確認コードが有効でない場合、またはプッシュ通知が承認されない場合、エラーメッセージが返されます。
Salesforce Authenticator の例
この例では、Salesforce Authenticator モバイルアプリケーションを使用した多要素認証 (MFA) の例を示します。この例の場合、actionName パラメータはデフォルト設定に設定され、extra パラメータの設定は false に設定されています。
1public void initVerification() {
2// user will receive push notification on their registered MFA devices
3identifier = UserManagement.initVerificationMethod(Auth.VerificationMethod.SALESFORCE_AUTHENTICATOR);
4}
5
6public Auth.VerificationResult verifyVerification() {
7// requiring identifier from the initVerification
8// user will need to take the action on their registered MFA devices
9return UserManagement.verifyVerificationMethod(identifier, '' , Auth.VerificationMethod.SALESFORCE_AUTHENTICATOR);
10}この例では、Salesforce Authenticator を使用した多要素認証の例を示します。この例の場合、actionName パラメータは Connect to My Salesforce Org に設定され、challenge_required extra パラメータの設定は true に設定されています。
1public void initVerification() {
2Map<String,String> extras = new Map<String,String>();
3extras.put('challenge_required','true');
4// user will receive push notification in their registered MFA devices
5identifier = UserManagement.initVerificationMethod(Auth.VerificationMethod.SALESFORCE_AUTHENTICATOR, 'Connect to My Salesforce Org', extras);
6}
7
8public Auth.VerificationResult verifyVerification() {
9// requiring identifier from the initVerification
10// user will need to take the action on their registered MFA devices
11return UserManagement.verifyVerificationMethod(identifier, '' , Auth.VerificationMethod.SALESFORCE_AUTHENTICATOR);
12}obfuscateUser(userId, username)
署名
public static void obfuscateUser(Id userId, String username)
パラメータ
戻り値
型: void
使用方法
このメソッドは、API バージョン 43.0 で導入されました。以前のバージョンでは使用できません。
obfuscateUser メソッドを使用して、組織のユーザの個人情報を保護します。呼び出されたときに、ユーザのオブジェクトデータは完全にスクランブルされて、ランダムな文字列に置換されます。ユーザの詳細ページは存在しますが、項目には意味のない文字列が含まれます。Salesforce でユーザを削除することはできず、無効化のみが可能なため、個人データは単に難読化 (スクランブル) されます。つまり、ユーザレコードはデータベースに残され、このメソッドは論理削除を実行します。
考慮事項
- このメソッドでは、[設定] の組織のユーザ管理設定 [特定のユーザのデ��タをスクランブル] が有効になっている必要があります。
- このメソッドはユーザオブジェクトの標準項目に影響します (ユーザ ID、タイムゾーン、ロケール、プロファイルなどの一部の項目を除く)。
- ユーザに確認を送信する場合、ユーザの ID と後処理のための他の属性 (メールアドレスなど) を書き留めることをお勧めします。
- このメソッドはユーザオブジェクトのみを変更します。ユーザと他のオブジェクト間の関連付けは削除されますが、他のオブジェクトは変更されません。たとえば、連絡先、ThirdPartyAccountLink (TPAL)、ユーザパスワード認証 (UPA) オブジェクトは変更されずに維持されます。
このメソッドは、ユーザの個人データとプライバシー保護の取り組みの一環です。ユーザデータを積極的に保護するために実行できることについての詳細は、Salesforce ヘルプの「データ保護とプライバシー」を参照してください。
obfuscateUser(userId)
署名
public static void obfuscateUser(Id userId)
パラメータ
- userId
- 型: Id
- このメソッドでスクランブルするデータを所有するユーザの ID。
戻り値
型: void
使用方法
このメソッドは、API バージョン 43.0 で導入されました。以前のバージョンでは使用できません。
obfuscateUser メソッドを使用して、組織のユーザの個人情報を保護します。呼び出されたときに、ユーザのオブジェクトデータは完全にスクランブルされて、ランダムな文字列に置換されます。ユーザの詳細ページは存在しますが、項目には意味のない文字列が含まれます。Salesforce でユーザを削除することはできず、無効化のみが可能なため、個人データは単に難読化 (スクランブル) されます。つまり、ユーザレコードはデータベースに残され、このメソッドは論理削除を実行します。
考慮事項
- このメソッドでは、[設定] の組織のユーザ管理設定 [特定のユーザのデータをスクランブル] が有効になっている必要があります。
- このメソッドはユーザオブジェクトの標準項目に影響します (ユーザ ID、タイムゾーン、ロケール、プロファイルなどの一部の項目を除く)。
- ユーザに確認を送信する場合は、後処理のためにユーザの ID とその他の属性 (メールアドレスなど) をメモしておくことをお勧めします。
- このメソッドはユーザオブジェクトのみを変更します。ユーザと他のオブジェクト間の関連付けは削除されますが、他のオブジェクトは変更されません。たとえば、連絡先、ThirdPartyAccountLink (TPAL)、ユーザパスワード認証 (UPA) オブジェクトは変更されずに維持されます。
このメソッドは、ユーザの個人データとプライバシー保護の取り組みの一環です。ユーザデータを積極的に保護するために実行できることについての詳細は、Salesforce ヘルプの「データ保護とプライバシー」を参照してください。
ObfuscateUser コード例
1public class UserManagementController{
2 public List <User> users {get; set;}
3
4 public UserManagementController()
5 {
6 Profile p = [select id from profile where name = 'Customer Community User'];
7
8 users = [select username, id from User where profileId=:p.id AND isactive=true];
9 }
10
11 //Use method with extreme caution. Data can't be recovered.
12 @InvocableMethod(label='User Management' description='Obfuscate User data and more')
13 static public void obfuscate(List<User> users)
14 {
15 String uid = ApexPages.currentPage().getParameters().get('uid');
16
17 if(uid == null)
18 return;
19
20 User u = [select contactId from user where id=:uid];
21
22 System.UserManagement.obfuscateUser(uid);
23 }
24}registerVerificationMethod(method, startUrl)
署名
public static System.PageReference registerVerificationMethod(Auth.VerificationMethod method, String startUrl)
パラメータ
- method
- 型: Auth.VerificationMethod
- ユーザの ID の検証に使用する検証方法。
- startUrl
- 型: String
- ログイン後にユーザに表示するページへのパス。
戻り値
使用方法
このメソッドを使用すると、ユーザは多要素認証 (MFA) などの ID 検証を完了したり、パスワードなしで Experience Cloud サイトにログインしたりできます。ユーザは、ログイン時に自分の ID を検証するためにこれらのメソッドを登録します。モバイル重視のパスワードなしのログインを実装するときは、カスタム登録ページを作成します。「VerifyPasswordlessLogin」を参照してください。
registerVerificationMethod で返された PageReference は、ユーザを Salesforce の検証ページにリダイレクトします。ユーザは、正しいコードを入力すると、開始 URL で指定された Experience Cloud サイトページにリダイレクトされます。次に例を示します。
1PageReference pr = System.UserManagement.registerVerificationMethod(Auth.VerificationMethod.TOTP,startUrl);
2PageReference p = System.UserManagement.deregisterVerificationMethod(userId,Auth.VerificationMethod.SALESFORCE_AUTHENTICATOR);このメソッドは API バージョン 43.0 以降で使用できます。
sendAsyncEmailConfirmation(userId, emailTemplateId, networkId, startUrl)
署名
public static Boolean sendAsyncEmailConfirmation(String userId, String emailTemplateId, String networkId, String startUrl)
パラメータ
使用方法
非同期メールメッセージを送信すると、ユーザが所有する有効なメールアドレスで登録されていることを確認できるため、お勧めします。検証リンクが記載されたメールの受信者を特定するには、ユーザの詳細ページで [ユーザの検証済みメール] 項目が true に設定されているかどうかを確認します。この情報は、TwoFactorMethodsInfo API からも得られます。
顧客およびパートナーに非同期メール検証を送信して、メールアドレスを検証します。これらのユーザはメールの OTP (パスワードなしのログイン) でログインする前にメールアドレスを検証する必要があります。
エラーコードと説明はクエリパラメータとして渡されるため、カスタムランディングページを作成するときにエラーを処理できます。
例
1System.UserManagement.sendAsyncEmailConfirmation('005RM000001a0Ox',
2'00XRM000000hxnG','0DBRM000000015i', '/s/contactsupport');verifyPasswordlessLogin(userId, method, identifier, code, startUrl)
署名
public static Auth.VerificationResult verifyPasswordlessLogin(Id userId, Auth.VerificationMethod method, String identifier, String code, String startUrl)
パラメータ
- userId
- 型: Id
- ログインするユーザの ID。
- method
- 型: Auth.VerificationMethod
- ユーザの ID を検証するために使用される方法。EMAIL または SMS。
- identifier
- 型: String
- initPasswordlessLogin メソッドから受信した検証試行の ID。
- code
- 型: String
- ユーザの ID の検証に使用するコード。
- startUrl
- 型: String
- ログインに成功した後にユーザが移動するページ。
使用方法
このメソッドをコールし、パスワードなしログイン認証プロセスを開始します。検証方法と検証コードが確認されます。また、ID が initPasswordlessLogin によって返されるものと同じであることが確認されます。
例
Auth.VerificationResult の例を参照してください。
verifyRegisterVerificationMethod(code, method)
署名
public static String verifyRegisterVerificationMethod(String code, Auth.VerificationMethod method)
パラメータ
- code
- 型: String
- ユーザの ID の検証に使用するコード。
- method
- 型: Auth.VerificationMethod
- ユーザの ID を検証するために使用される方法。EMAIL または SMS。
使用方法
- ユーザが正しい確認コードを入力したことを確認します。
- ユーザの詳細ページから、ユーザの検証方法の状況を更新します (検証ビットを設定します)。
- 検証方法がレコードに追加されていることを確認するメールをユーザに送信します。
確認コードが正しくない場合は、エラーメッセージが返されます。
例
ユーザの電話番号を検証方法として登録するコードの例を次に示します。ユーザが Visualforce ページで確認コードを入力すると、registerUser() が呼び出されます。このメソッドは、検証方法とユーザの電話番号を登録するユーザのユーザ ID を取得します。また、ユーザの登録状況を取得して、電話番号がすでに検証されているかどうかを検査します。ユーザが別の電話番号で登録されている場合は、その電話番号が更新されます。
1public void registerUser() {
2 try {
3 exceptionText='';
4 String userId = UserInfo.getUserId();
5 User u = [Select MobilePhone, Id from User Where Id=:userId];
6 currPhone = u.MobilePhone;
7 mobilePhone = getFormattedSms(mobilePhone);
8 if (mobilePhone != null && mobilePhone != '') {
9 u.MobilePhone = mobilePhone;
10 update u;
11 // We're updating the email and phone number before verifying. Roll back
12 // the change in the verify API if it is unsuccessful.
13 exceptionText = System.
14 UserManagement.initRegisterVerificationMethod(Auth.VerificationMethod.SMS);
15 if(exceptionText!= null && exceptionText!=''){
16 isInit = false;
17 showInitException = true;
18 } else {
19 isInit = false;
20 isVerify = true;
21 }
22 } else {
23 showInitException = true;
24 }
25 } catch (Exception e) {
26 exceptionText = e.getMessage();
27 isInit = false;
28 showInitException = true;
29 }
30 }
31
32public void verifyUser() {
33 // Take the user’s input for the code sent to their phone number
34 exceptionText = System.UserManagement.
verifyRegisterVerificationMethod(code, Auth.VerificationMethod.SMS);
35 if(exceptionText != null && exceptionText !=''){
36 showInitException = true;
37 } else {
38 //Success
39 }
40}verifySelfRegistration(method, identifier, code, startUrl)
署名
public static Auth.VerificationResult verifySelfRegistration(Auth.VerificationMethod method, String identifier, String code, String startUrl)
パラメータ
- method
- 型: Auth.VerificationMethod
- ユーザの ID を検証するために使用される方法。EMAIL または SMS。
- identifier
- 型: String
- initSelfRegistration メソッドから受信した一意の識別子。
- code
- 型: String
- ユーザの ID の検証に使用するコード。
- startUrl
- 型: String
- セルフ登録が成功した後にユーザが移動するページ。
使用方法
デフォルトでは、ユーザがメールアドレスまたは電話番号で Experience Cloud サイトにサインアップすると、Salesforce から検証コードが送信され、検証ページが生成されます。この検証ページでは、ユーザが自分の身元を確認するための確認コードを入力します。Salesforce で生成された検証ページは、Visualforce で作成したカスタム検証ページと置き換えることができます。そして、Apex メソッドを使用して検証プロセスを呼び出します。
まず、initSelfRegistration メソッドを呼び出します。このメソッドは、作成するユーザの ID を返します。次に、この verifySelfRegistration メソッドをコールして検証プロセスを完了します。ユーザが確認コードを正しく入力すると、ユーザが作成され、startURL で指定されたページに転送されます。
このメソッドは、確認状況を含んだ検証結果を返します。さらに、ユーザが作成された場合は、セッション ID を返します。検証方法が SMS の場合、ユーザオブジェクトには適切な形式の携帯番号 (国コード、スペース、電話番号の順、例: +1 1234567890) が含まれている必要があります。電話番号を正しく書式設定するには、System.UserManagement.formatPhoneNumber を使用します。
例
次のコードには、新しいユーザを登録するための検証の結果が含まれています。
1String id = System.UserManagement.initSelfRegistration
2 (Auth.VerificationMethod.SMS, user);
3 Auth.VerificationResult res = System.UserManagement.verifySelfRegistration
4 (Auth.VerificationMethod.SMS, id, ‘123456’, null);
5 if(res.success == true){
6 //redirect
7}verifyVerificationMethod(identifier, code, method)
署名
public static VerificationResult verifyVerificationMethod(String identifier, String code, Auth.VerificationMethod method)
パラメータ
- identifier
- 型: String
- initVerificationMethod から返された EMAIL、SMS、および SALESFORCE_AUTHENTICATOR の識別子。
- code
- 型: String
- EMAIL、SMS、または PASSWORD について、ユーザの ID を検証するために使用されるコード。
- method
- 型: Auth.VerificationMethod
- ユーザの ID を検証するために使用される方法。EMAIL、PASSWORD、SALESFORCE_AUTHENTICATOR、SMS または TOTP が有効になります。
戻り値
使用方法
このメソッドと、対応する initVerificationMethod を一緒に使用することで、EMAIL、SMS、SALESFORCE_AUTHENTICATOR などの検証メソッドの検証サービスをカスタマイズできます。また、このメソッドを単独で使用することで、PASSWORD と TOTP の検証方法の完全な検証サービスを提供できます。
このメソッドは、ユーザが正しい確認コードまたはパスワードを入力したかどうかを検査します。確認コードまたはパスワードが正しい場合、このメソッドはユーザの ID を検証します。
確認コードまたはパスワードが有効ではない場合、エラーメッセージが返されます。
例
この例では、メールを使用した多要素認証の例を示します。
1public void initVerification() {
2// user will receive code on their registered verified email
3 identifier = UserManagement.initVerificationMethod(Auth.VerificationMethod.EMAIL);
4}
5
6public Auth.VerificationResult verifyVerification() {
7// requiring identifier from the initVerification
8// the code will need to be entered in this method
9return UserManagement.verifyVerificationMethod(identifier, code , Auth.VerificationMethod.EMAIL);
10}次の 2 つの例は、パスワードと TOTP 検証に verifyVerificationMethod のみを使用した多要素認証を示しています。
1public Auth.VerificationResult verifyVerification() {
2// user will enter their password as a param in the verifyVerificationMethod for password verification method
3return UserManagement.verifyVerificationMethod('', password , Auth.VerificationMethod.PASSWORD);
4}1public Auth.VerificationResult verifyVerification() {
2// user will enter their registered time-based one-time password (TOTP) code (token)
3return UserManagement.verifyVerificationMethod('', code , Auth.VerificationMethod.TOTP);
4}