Loading
Identificar sus usuarios y gestionar el acceso
Índice de materias
Seleccionar filtros

          No hay resultados
          No hay resultados
          Estas son algunas sugerencias de búsqueda

          Compruebe la ortografía de sus palabras clave.
          Utilice términos de búsqueda más generales.
          Seleccione menos filtros para ampliar su búsqueda.

          Buscar en toda la Ayuda de Salesforce
          Personalizar el controlador LoginDiscovery

          Personalizar el controlador LoginDiscovery

          Después de crear una página Detección de inicio de sesión, continúe configurando el inicio de sesión sin contraseña con una dirección de email o un número de teléfono modificando el controlador LoginDiscovery de Apex generado automáticamente. Al personalizar el controlador, puede controlar el proceso de inicio de sesión mientras Salesforce controla la verificación. El controlador encuentra usuarios basándose en el identificador que proporcionan en la página de inicio de sesión, como su dirección de email. Luego comprueba qué métodos de verificación registró el usuario previamente. El controlador inicia la sesión del usuario con el método que esté configurado.

          1. Desde Configuración, en el cuadro Búsqueda rápida, ingrese Clases de Apex y, a continuación, seleccione Clases de Apex.
          2. Encuentre la clase de controlador LoginDiscovery generada automáticamente. Su nombre comienza por AutocreatedDiscLoginHandler, seguido de una cadena de números.
          3. Junto al controlador LoginDiscovery, haga clic en Modificar.
          4. Utilice estos métodos para modificar el código generado.
            UserManagement.registerVerificationMethod
            Registra un método de verificación de identidad, como una dirección de email o número de teléfono. Solo los usuarios pueden registrar métodos de verificación. Pero usted y los usuarios pueden anular su registro.
            UserManagement.deregisterVerificationMethod
            Anula el registro de un método de verificación de identidad existente.
            Enumeración Auth.VerificationMethod
            Representa los métodos de verificación disponibles, que incluyen EMAIL, SALESFORCE_AUTHENTICATOR, SMS, TOTP y U2F.
            UserManagement.formatPhoneNumber
            Da formato a un número de teléfono celular para garantizar que esté en el formato requerido por Salesforce. Después de dar formato al número de teléfono, actualice el campo de celular del registro del usuario con el resultado de formatPhoneNumber.
            Site.passwordlessLogin
            Inicia la sesión de un usuario en un sitio empleando un método de verificación de identidad que registró anteriormente el usuario.

          Para obtener más información acerca de estos métodos de Apex, consulte estos vínculos en la Guía de referencia de Apex.

          Ejemplo de código de PasswordlessLogin

          En este sencillo fragmento de código, un controlador de Apex contiene el método passwordlessLogin. Para una implementación completa, consulte Implementación de ejemplo de LoginDiscoveryHandler en la Guía de referencia de Apex

          global with sharing class MFILoginController    
          {
             //Input variables 
             global String input {get; set;}
             public String startURL  {get; set;}
             public List<Auth.VerificationMethod> methods;
             public String error;
          
             global MFILoginController()
             {
             }
          
             global PageReference login() 
             { 
                  List<User> users = null;
                  
                  // Empty input
                  if(input == null || input == '')
                  {
                      error = 'Enter Username';
                      return null;
                  }   
                  users = [select name, id, email from User where username=:input];
                  if(users == null || users.isEmpty())
                  {
                      error = 'Can\'t find a user';            
                      return null;
                  }  
                  ID uid = users[0].id;
                  if (startURL == null) startURL = '/';  
                  
                  // Check which verification methods the user has already registered 
                  TwoFactorMethodsInfo AvailableMethods = [select 
                      HasUserVerifiedMobileNumber,
                      HasUserVerifiedEmailAddress,
                      HasSalesforceAuthenticator,
                      HasTotp, 
                      HasU2F from TwoFactorMethodsInfo where userId=:uid];
                  
                  // If no verification method is available, prompt the user to enter a password
                  // and invoke the site.login(usr,pwd) method
                  // if(AvailableMethods.size() == 0)
                                     
                  // Add verification methods in priority order
                  methods = new List<Auth.VerificationMethod>();
                  if(AvailableMethods.HasUserVerifiedMobileNumber)

                      methods.add(Auth.VerificationMethod.SMS);
                  if(AvailableMethods.HasUserVerifiedEmailAddress)
                      methods.add(Auth.VerificationMethod.EMAIL);
                  if(AvailableMethods.HasSalesforceAuthenticator)
                      methods.add(Auth.VerificationMethod.
                      SALESFORCE_AUTHENTICATOR);
                  if(AvailableMethods.HasTotp)
                      methods.add(Auth.VerificationMethod.U2F);
                  if(AvailableMethods.HasU2F)
                      methods.add(Auth.VerificationMethod.U2F);
                    
                  return Site.passwordlessLogin(uid, methods, startURL);
              }
          }
          
           
          Cargando
          Salesforce Help | Article