사용자 정의 ID 확인 페이지 만들기
이메일, SMS, 시간 기반 일회용 암호(TOTP), 물리적 U2F 보안 키 또는 Salesforce Authenticator와 같은 다양한 확인 메서드를 사용자가 등록 및 등록 취소할 수 있도록 무암호 로그인을 사용할 수 있습니다. 그런 다음, 사용자가 확인 메서드를 사용하여 로그인할 수 있습니다. 자체 확인 페이지를 만들고 Apex로 확인 프로세스를 사용자 정의합니다.
필수 Edition
| 지원 제품: Enterprise, Performance, Unlimited, Developer Edition |
기본적으로 무암호 로그인을 구현할 때 Salesforce가 ID 확인 프로세스를 수행합니다. 확인 코드를 보내고 사용자가 코드를 입력할 수 있는 확인 페이지를 표시한 다음, 사용자 ID를 확인합니다. Salesforce는 아래의 기본 확인 페이지를 제공합니다.

Visualforce를 사용하여 자체 확인 페이지를 만들고 레이아웃을 완벽히 제어할 수 있습니다. Apex 컨트롤러에서 ID 확인 프로세스를 제어할 수도 있습니다. 사용자 정의 확인 페이지의 다음 예는 서로 다른 글꼴, 색 및 레이아웃을 사용합니다. 원활한 무암호 로그인 환경을 위해 별도의 확인 페이지 대신 사용자는 확인 코드를 수신하고 로그인 페이지에 직접 입력합니다.

- Visualforce 페이지를 만듭니다. 콘텐츠 및 레이아웃 사용자 정의에 대한 자세한 내용은 Salesforce 도움말에서 Visualforce를 참조하십시오.
- 설정에서 빠른 찾기 상자에 Visualforce 페이지를 입력한 다음, Visualforce 페이지를 선택합니다.
- ID 확인을 위해 만든 Visualforce 페이지를 클릭합니다.
- 편집을 클릭합니다.
- 자체 확인 프로세스를 구현하려면
System.UserManagement클래스에서 Apex 메서드를 사용합니다. 메서드는 한 쌍을 이루며, 한 메서드는 확인 코드를 전송하고 한 메서드는 확인 코드가 올바른지 확인하는 용도입니다. ID 확인이 필요한 상황에 따라 사용하는 메서드가 결정됩니다.- 새 사용자를 등록하려면
initSelfRegistration및verifySelfRegistration를 사용하십시오. - 사용자를 로그인하려면
initPasswordlessLogin및verifyPasswordlessLogin를 사용합니다. - 사용자의 확인 방법을 등록하려면
initRegisterVerificationMethod및verifyRegisterVerificationMethod를 사용합니다.
- 새 사용자를 등록하려면
확인 프로세스 사용자 정의를 위한 예제 구현
이 코드 예는 확인 메서드 등록용 확인 페이지를 사용자 정의합니다. 사용자가 Visualforce 페이지에 확인 코드를 입력하면 registerUser()를 호출합니다. 메서드를 통해 확인 메서드 및 사용자 전화 번호를 등록하는 사용자의 사용자 ID를 가져오며, 사용자의 등록 상태를 가져와 전화 번호가 이미 확인된 상태인지 여부를 점검합니다. 사용자가 다른 전화 번호로 등록된 경우 번호는 업데이트됩니다.
public void registerUser() {
try {
exceptionText='';
String userId = UserInfo.getUserId();
User u = [Select MobilePhone, Id from User Where Id=:userId];
currPhone = u.MobilePhone;
mobilePhone = getFormattedSms(mobilePhone);
if (mobilePhone != null && mobilePhone != '') {
u.MobilePhone = mobilePhone;
update u;
// We're updating the email and phone number before verifying. Roll back
// the change in the verify API if it is unsuccessful.
exceptionText = System.
UserManagement.initRegisterVerificationMethod(Auth.VerificationMethod.SMS);
if(exceptionText!= null && exceptionText!=''){
isInit = false;
showInitException = true;
} else {
isInit = false;
isVerify = true;
}
} else {
showInitException = true;
}
} catch (Exception e) {
exceptionText = e.getMessage();
isInit = false;
showInitException = true;
}
}
public void verifyUser() {
// Take the user’s input for the code sent to their phone number
exceptionText = System.UserManagement.
verifyRegisterVerificationMethod(code, Auth.VerificationMethod.SMS);
if(exceptionText != null && exceptionText !=''){
showInitException = true;
} else {
//Success
}
}