Skip to main content
Lock.Android vous permet de définir des champs supplémentaires que l’utilisateur doit remplir avant de créer un nouveau compte. Ces champs s’afficheront sur un deuxième écran une fois que l’utilisateur aura rempli les champs de base (courriel, nom d’utilisateur, mot de passe).

Créer les champs personnalisés

Créez un nouvel objet CustomField en lui passant ces 4 paramètres obligatoires.
  1. Icône : l’int qui pointe vers la ressource que vous voulez utiliser comme icône (gardez-la petite).
  2. Type : le FieldType à utiliser pour ce champ. Le type définit la disposition du clavier et, parfois, la validation de la saisie.
  3. Clé : la String qui identifie cette valeur dans le JSON résultant. Elle ne doit pas être répétée! Des clés de champ dupliquées entraîneront la suppression du deuxième champ de la liste.
  4. Indice : le @StringRes du texte à afficher comme indice dans le champ.
De plus, vous pouvez préciser où le champ sera stocké dans le profil de l’utilisateur. Consultez la section Stockage ci-dessous pour en savoir plus. Vous pouvez aussi créer des champs qui ne seront pas affichés à l’utilisateur, mais qui peuvent servir à inclure dynamiquement des métadonnées supplémentaires après l’inscription.
// Champ ordinaire
val nameField = CustomField(R.drawable.ic_name, FieldType.TYPE_NAME, "first_name", R.string.hint_first_name, CustomField.Storage.PROFILE_ROOT)

// Champ masqué
val androidField = HiddenField("android_version", Build.VERSION.SDK_INT.toString(), Storage.USER_METADATA)

val customFields = listOf(nameField, androidField)
Répétez les étapes ci-dessus autant de fois que nécessaire pour ajouter le nombre de champs voulu.

Utiliser les champs personnalisés

Passez la liste des champs personnalisés à l’instance Lock lors de sa création à l’aide de la méthode withSignUpFields().
val lock = Lock.newBuilder(auth0, callback)
              .withSignUpFields(customFields)
              //...
              .build(this)
Si vous avez activé l’inscription dans l’Auth0 Dashboard de l’application, les utilisateurs seront invités à remplir les champs restants après avoir rempli les champs de base (email/username, mot de passe) et cliqué sur Envoyer. L’utilisateur doit remplir tous les champs personnalisés avant de pouvoir terminer l’inscription. Pendant l’inscription, les champs supplémentaires sont ajoutés à l’attribut user_metadata ou définis directement dans le profil racine de l’utilisateur, selon l’option de stockage choisie. Vous pouvez accéder à ces propriétés en interrogeant le profil de l’utilisateur à tout moment, même depuis l’Auth0 Dashboard, dans la section Utilisateurs.

Types de champs

Chaque champ personnalisé ne peut être associé qu’à un seul FieldType.
  • TYPE_NAME
  • TYPE_NUMBER
  • TYPE_PHONE_NUMBER
  • TYPE_EMAIL

Stockage

Chaque champ personnalisé ne peut être associé qu’à un seul Storage. Vous pouvez choisir de le stocker à la racine, dans un attribut de profil racine, ou dans l’attribut user_metadata. Pour préciser l’emplacement de stockage, utilisez le constructeur à cinq paramètres et transmettez le paramètre Storage de votre choix. Par défaut, les champs sont stockés dans l’attribut user_metadata. Choix possibles :
  • PROFILE_ROOT
  • USER_METADATA (par défaut)
Pour que les champs soient enregistrés à la racine du profil de l’utilisateur, leurs clés doivent correspondre à celles indiquées dans la documentation du point de terminaison.