Crear una página de verificación de inicio de sesión personalizada
Puede utilizar el inicio de sesión sin contraseña para permitir a los usuarios registrarse y anular el registro mediante una variedad de métodos de verificación, como por email, SMS, contraseña simultánea basada en el tiempo (TOTP), llave de seguridad U2F física o Salesforce Authenticator. Los usuarios pueden luego iniciar sesión con un método de verificación. Cree su propia página de verificación y personalice el proceso de verificación con Apex.
Ediciones necesarias
| Disponible en: Enterprise Edition, Performance Edition, Unlimited Edition y Developer Edition |
Al implementar el inicio de sesión sin contraseña, Salesforce realiza de forma predeterminada un proceso de verificación de identidad. Envía el código de verificación, muestra la página Verificar cuando el usuario ingresa el código y confirma la identidad del usuario. Salesforce proporciona esta página Verificar predeterminada.

Puede utilizar Visualforce para crear su propia página Verificar y tener control completo del formato. También puede controlar el proceso de verificación de identidad en el controlador de Apex. Este ejemplo de una página Verificar personalizada utiliza tipos de letra, colores y formato diferentes. En vez de una página Verificar separada, los usuarios reciben su código de verificación y lo ingresan directamente en la página de inicio de sesión para una experiencia de inicio de sesión sin contraseña libre de contratiempos.

- Cree su página de Visualforce. Para obtener más información sobre la personalización del contenido y formato, consulte Visualforce en la Ayuda de Salesforce.
- Desde Configuración, en el cuadro Búsqueda rápida, ingrese páginas de Visualforce, y luego seleccione Páginas de Visualforce.
- Haga clic en la página de Visualforce que creó para la verificación de identidad.
- Haga clic en Modificar.
- Para implementar su propio proceso de verificación, utilice métodos de Apex bajo la clase
System.UserManagement. Los métodos vienen por pares: un método para enviar el código de verificación y otro método para verificar que el código de verificación es correcto. El método que utilice depende de cuándo requiera la verificación de la identidad.- Para inscribir nuevos usuarios, utilice
initSelfRegistrationyverifySelfRegistration. - Para iniciar sesión en usuarios, utilice
initPasswordlessLoginyverifyPasswordlessLogin. - Para registrar el método de verificación de un usuario, utilice
initRegisterVerificationMethodyverifyRegisterVerificationMethod.
- Para inscribir nuevos usuarios, utilice
Ejemplo de implementación para personalizar el proceso de verificación
Este código de ejemplo personaliza la página Verificar para registrar un método de verificación. Cuando el usuario ingresa un código de verificación en la página de Visualforce, invoca registerUser(). El método obtiene el Id. del usuario que está registrando el método de verificación y el número de teléfono del usuario. También obtiene el estado de registro del usuario para comprobar si el número de teléfono ya está verificado. Si el usuario se registró con un número de teléfono diferente, se actualiza el número.
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
}
}
