Skip to main content
De nombreuses options de configuration du comportement de Lock sont présentées ci-dessous. De plus, la page Options de personnalisation du style propose aussi plusieurs options pour modifier l’apparence et le style de Lock.

Configuration du comportement de Lock

Vous pouvez ajouter des options de configuration lors de l’initialisation de Lock à l’aide de withOptions.
Lock
  .classic()
  .withOptions {
    $0.closable = true
    $0.usernameStyle = [.Username]
    $0.allow = [.Login, .ResetPassword]
  }
  .present(from: self)

Options de comportement

closable

Permet à l’utilisateur de fermer Lock. Par défaut, cette valeur est false.
.withOptions {
  $0.closable = true
}

scope

Scope utilisé pour l’authentification. Par défaut, sa valeur est openid. Il renvoie non seulement le , mais aussi un qui est un (JWT) contenant des informations sur l’utilisateur. Consultez la documentation sur les Scopes pour en savoir plus sur les scopes d’authentification.
.withOptions {
  $0.scope = "openid name email picture"
}

Jetons d’actualisation

Si vous spécifiez le scope offline_access dans vos options Lock, un Jeton d’actualisation sera renvoyé avec l’access_token et l’id_token. peuvent être enregistrés et utilisés pour obtenir un nouveau Jeton d’accès lorsque l’ancien expire. Pour en savoir plus sur l’utilisation des jetons d’actualisation pour l’authentification avec Auth0, consultez la documentation de référence du SDK Auth0.Swift, que vous utiliseriez pour implémenter les jetons d’actualisation, ou le guide de démarrage rapide Swift, qui fournit un exemple complet d’utilisation d’Auth0 dans le développement Swift, y compris la gestion des jetons d’actualisation.

termsOfService

Par défaut, Lock utilise les conditions d’utilisation et la politique de confidentialité d’Auth0, mais vous pouvez indiquer d’autres URL pour créer des liens vers d’autres conditions d’utilisation et politiques.
.withOptions {
  $0.termsOfService = "https://mycompany.com/terms"
  $0.privacyPolicy = "https://mycompany.com/privacy"
}

Afficher les conditions d’utilisation

Les connexions de base de données affichent la boîte de dialogue des conditions d’utilisation. La valeur par défaut est true. Notez que les conditions d’utilisation s’affichent toujours si l’indicateur mustAcceptTerms est activé.
.withOptions {
    $0.showTerms = true
}

Exiger des utilisateurs qu’ils acceptent les conditions d’utilisation

Les connexions de base de données nécessitent l’acceptation explicite des conditions d’utilisation.
.withOptions {
    $0.mustAcceptTerms = true
}

Options d’authentification Web

leeway

Décalage horaire utilisé pour la validation du jeton d’identité. Il élargit la période pendant laquelle le jeton d’identité est encore considéré comme valide, afin de tenir compte de l’écart entre l’heure du serveur et celle du client. Par défaut, il est de 60000 millisecondes (60 secondes).
.withOptions {
  $0.leeway = 30000 // 30 secondes
}

maxAge

Durée maximale autorisée (en millisecondes) depuis la dernière authentification de l’utilisateur. Utilisé pour la validation du jeton d’identité. Si cette valeur est définie, le jeton d’identité contiendra une revendication auth_time avec l’horodatage de l’authentification. La valeur par défaut est nil.
.withOptions {
  $0.maxAge = 86400000 // 1 jour
}

Options de la base de données

allow

Indique quels écrans de la base de données seront accessibles; par défaut, tous les écrans sont activés, comme .Login, .Signup et .ResetPassword.
.withOptions {
  $0.allow = [.Login, .ResetPassword]
}

initialScreen

Le premier écran à afficher à l’utilisateur. La valeur par défaut est .Login; les autres options incluent .Signup et ResetPassword.
.withOptions {
  $0.initialScreen = .Login
}

usernameStyle

Spécifiez le type d’identifiant requis pour la connexion. Par défaut, la valeur est [.Username, .Email], mais elle peut aussi être [.Username] ou [.Email]. Il est toutefois important de noter que cette option n’est active que si vous avez défini l’indicateur requires_username sur true dans votre Auth0 Dashboard.
.withOptions {
  $0.usernameStyle = [.Username]
}

Champs d’inscription personnalisés

Lors de l’inscription, les renseignements requis par défaut sont le courriel et le mot de passe de l’utilisateur. Vous pouvez élargir les données à recueillir selon vos besoins. Les champs d’inscription supplémentaires que vous ajoutez ici seront stockés dans le user_metadata. Pour en savoir plus, consultez Metadata. Notez que vous devez préciser l’icône à utiliser avec votre champ de texte personnalisé.
.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))
  ]
}
Vous pouvez également spécifier des icônes provenant d’autres bundles, comme dans l’exemple suivant : CustomTextField(name: “slack_handle”, placeholder: “Slack Handle”, icon: LazyImage(name: “ic_slack”, bundle: Bundle(identifier: “CustomBundle”)))

Options d’entreprise

Il existe également des options de configuration propres aux connexions d’entreprise :

enterpriseConnectionUsingActiveAuth

Par défaut, les connexions d’entreprise utilisent l’authentification Web. Toutefois, vous pouvez préciser quelles connexions utiliseront plutôt l’authentification par identifiants et demanderont un nom d’utilisateur et un mot de passe.
.withOptions {
  $0.enterpriseConnectionUsingActiveAuth = ["enterprisedomain.com"]
}

activeDirectoryEmailAsUsername

En mode d’authentification par identifiants, l’utilisateur doit-il utiliser son courriel comme identifiant ? Par défaut, la valeur est false; un nom d’utilisateur est alors requis à la place.
.withOptions {
  $0.activeDirectoryEmailAsUsername = true
}

Options de journalisation

Lock offre des options pour activer ou désactiver facilement la journalisation, ainsi que pour ajuster d’autres paramètres connexes.

logLevel

Par défaut, la valeur est .off. Les niveaux de journalisation de Syslog sont pris en charge.
.withOptions {
  $0.logLevel = .all
}

logHttpRequest

Indique si les requêtes API d’Auth0.swift doivent être consignées dans les journaux. Par défaut, cette valeur est false.
.withOptions {
  $0.logHttpRequest = true
}

loggerOutput

Spécifiez le gestionnaire de sortie du journal; par défaut, l’instruction print est utilisée.
.withOptions {
  $0.loggerOutput = CleanroomLockLogger()
}
Dans le code ci-dessus, loggerOutput a été configuré pour utiliser CleanroomLogger. On peut généralement le faire en implémentant le protocole loggerOutput. Vous pouvez bien sûr utiliser la bibliothèque de journalisation de votre choix. Voici un exemple montrant comment gérer la sortie des journaux avec 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)
  }
}