Newer Version Available
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}