Skip to main content
A continuación se enumeran numerosas opciones para configurar el comportamiento de Lock. Además, en la página Opciones de personalización de estilo también encontrarás varias opciones para modificar la apariencia y el estilo de Lock.

Configuración del comportamiento de Lock

Puedes añadir opciones de configuración a la inicialización de Lock mediante withOptions.
Lock
  .classic()
  .withOptions {
    $0.closable = true
    $0.usernameStyle = [.Username]
    $0.allow = [.Login, .ResetPassword]
  }
  .present(from: self)

Opciones de comportamiento

closable

Permite que el usuario cierre Lock. De forma predeterminada, es false.
.withOptions {
  $0.closable = true
}

scope

Scope utilizado para la autenticación. Su valor predeterminado es openid. Devolverá no solo el , sino también un , que es un (JWT) que contiene información del usuario. Consulte la documentación sobre Scopes para obtener más información sobre los alcances de autenticación.
.withOptions {
  $0.scope = "openid name email picture"
}

Tokens de actualización

Especificar el scope offline_access en las opciones de Lock permitirá devolver un Token de actualización junto con el access_token y el id_token. se pueden guardar y usar para obtener un nuevo Token de acceso cuando el anterior caduque. Para obtener más información sobre el uso de Tokens de actualización en la autenticación de Auth0, consulta la documentación de referencia del SDK de Auth0.Swift, que usarías para implementar Tokens de actualización, o la guía de inicio rápido de Swift, que ofrece un ejemplo completo del uso de Auth0 en el desarrollo con Swift, incluida la gestión de Tokens de actualización.

termsOfService

De forma predeterminada, Lock usará los Términos del servicio y la Política de privacidad de Auth0, pero puedes indicar otras URL para enlazar a otros términos y políticas.
.withOptions {
  $0.termsOfService = "https://mycompany.com/terms"
  $0.privacyPolicy = "https://mycompany.com/privacy"
}

Mostrar los Términos del servicio

Las conexiones de base de datos muestran el cuadro de diálogo de los Términos del servicio. El valor predeterminado es true. Ten en cuenta que los Términos del servicio siempre se mostrarán si la marca mustAcceptTerms está habilitada.
.withOptions {
    $0.showTerms = true
}

Exigir que los usuarios acepten los Términos del servicio

Las conexiones de base de datos requieren la aceptación explícita de los Términos del servicio.
.withOptions {
    $0.mustAcceptTerms = true
}

Opciones de autenticación web

leeway

Margen de desfase horario usado para la validación del token de ID. Amplía el intervalo de tiempo durante el cual el token de ID seguirá considerándose válido, para tener en cuenta la diferencia entre la hora del servidor y la del cliente. De forma predeterminada, es de 60000 milisegundos (60 segundos).
.withOptions {
  $0.leeway = 30000 // 30 segundos
}

maxAge

Tiempo transcurrido máximo permitido (en milisegundos) desde la última vez que el usuario se autenticó. Se usa para validar el token de ID. Si se establece, el token de ID incluirá una reclamación auth_time con la marca de tiempo de la autenticación. El valor predeterminado es nil.
.withOptions {
  $0.maxAge = 86400000 // 1 día
}

Opciones de base de datos

allow

Qué pantallas de base de datos estarán accesibles; de forma predeterminada, se habilitan todas las pantallas, como .Login, .Signup y .ResetPassword.
.withOptions {
  $0.allow = [.Login, .ResetPassword]
}

initialScreen

La primera pantalla que se muestra al usuario. El valor predeterminado es .Login; otras opciones incluyen .Signup y ResetPassword.
.withOptions {
  $0.initialScreen = .Login
}

usernameStyle

Especifique el tipo de identificador que requerirá el inicio de sesión. El valor predeterminado es [.Username, .Email], pero también puede ser [.Username] o [.Email]. Sin embargo, es importante tener en cuenta que esta opción solo está activa si ha establecido la marca requires_username en true en su Auth0 Dashboard.
.withOptions {
  $0.usernameStyle = [.Username]
}

Campos personalizados de registro

Al registrarse, la información obligatoria predeterminada es el correo electrónico y la contraseña del usuario. Puede ampliar los datos que recopila según sea necesario. Los campos adicionales de registro que agregue aquí se almacenarán en user_metadata; puede obtener más información en Metadatos. Tenga en cuenta que debe especificar el icono que se usará con su campo de texto personalizado.
.withOptions {
  $0.customSignupFields = [
    CustomTextField(name: "first_name", placeholder: "First Name", icon: LazyImage(name: "ic_person", bundle: Lock.bundle)),
    CustomTextField(name: "last_name", placeholder: "Last Name", icon: LazyImage(name: "ic_person", bundle: Lock.bundle))
  ]
}
También puede especificar iconos de otros bundles, como en el siguiente ejemplo: CustomTextField(name: “slack_handle”, placeholder: “Usuario de Slack”, icon: LazyImage(name: “ic_slack”, bundle: Bundle(identifier: “CustomBundle”)))

Opciones empresariales

También hay opciones de configuración específicas para las conexiones empresariales:

enterpriseConnectionUsingActiveAuth

De forma predeterminada, las conexiones empresariales usarán autenticación web. Sin embargo, puede especificar qué conexiones usarán en su lugar la autenticación con credenciales y solicitarán un username y una contraseña.
.withOptions {
  $0.enterpriseConnectionUsingActiveAuth = ["enterprisedomain.com"]
}

activeDirectoryEmailAsUsername

En el modo de autenticación con credenciales, ¿se debe exigir al usuario que use su correo electrónico como identificador? El valor predeterminado es false; en ese caso, se requiere un username.
.withOptions {
  $0.activeDirectoryEmailAsUsername = true
}

Opciones de registro

Lock ofrece opciones para activar y desactivar fácilmente el registro, así como para ajustar otras opciones relacionadas.

logLevel

De forma predeterminada, es .off; admite los niveles de registro de Syslog.
.withOptions {
  $0.logLevel = .all
}

logHttpRequest

Indica si se registran las solicitudes a la API de Auth0.swift. De forma predeterminada, es false.
.withOptions {
  $0.logHttpRequest = true
}

loggerOutput

Especifique el controlador de salida del logger; de forma predeterminada, se usa la instrucción print.
.withOptions {
  $0.loggerOutput = CleanroomLockLogger()
}
En el código anterior, loggerOutput se ha configurado para usar CleanroomLogger. Normalmente, esto se consigue implementando el protocolo loggerOutput. Por supuesto, puedes usar la biblioteca de logging que prefieras. A continuación, se muestra un ejemplo de uso para gestionar la salida de registro con CleanroomLogger.
class CleanroomLockLogger: LoggerOutput {
  func message(_ message: String, level: LoggerLevel, filename: String, line: Int) {
    let channel: LogChannel?
    switch level {
    case .debug:
        channel = Log.debug
    case .error:
        channel = Log.error
    case .info:
        channel = Log.info
    case .verbose:
        channel = Log.verbose
    case .warn:
        channel = Log.warning
    default:
        channel = nil
    }
    channel?.message(message, filePath: filename, fileLine: line)
  }
}