Lock.Android:サインアップ時のカスタムフィールド

Lock.Androidを使用すると、新しいアカウントを作成する前にユーザーが入力する必要がある追加のフィールドを指定できます。ユーザーが基本フィールド(メール、ユーザー名、パスワード)を入力した後、追加のフィールドが2番目の画面に表示されます。

カスタムフィールドを作成する

これら4つの必須パラメーターをすべて渡す新しいCustomFieldオブジェクトを作成します。

  1. Icon:Iconとして使用するリソースを指すint(小さい値にします)。

  2. Type:このフィールドで使用するFieldTypeです。Typeはキーボード レイアウトを定義し、場合によっては入力検証を定義します。

  3. Key:結果の JSON でこの値を識別する文字列です。これは繰り返すことはありません。フィールド キーが繰り返されると、2番目のフィールドがリストから削除されます。

  4. ヒント:フィールドにヒントとして表示されるテキストの@StringResです。

さらに、フィールドがユーザーのプロファイルに保存される場所を指定できます。詳細については、以下のストレージセクションを参照してください。

ユーザーには表示されないが、サインアップ後に動的に追加のメタデータを含めるために使用できるフィールドを作成することもできます。

// Regular field
val nameField = CustomField(R.drawable.ic_name, FieldType.TYPE_NAME, "first_name", R.string.hint_first_name, CustomField.Storage.PROFILE_ROOT)

// Hidden field
val androidField = HiddenField("android_version", Build.VERSION.SDK_INT.toString(), Storage.USER_METADATA)

val customFields = listOf(nameField, androidField)

Was this helpful?

/

必要なフィールドの数だけ上記の手順を繰り返します。

カスタムフィールドを使用する

withSignUpFields()メソッドを使用して、構築中にカスタムフィールドのリストをLockインスタンスに渡します。

val lock = Lock.newBuilder(auth0, callback)
              .withSignUpFields(customFields)
              //...
              .build(this)

Was this helpful?

/

アプリケーションのダッシュボードでサインアップを有効にした場合、ユーザーは基本フィールド(メール/ユーザー名、パスワード)を入力して[Submit(送信)]をクリックした後、残りのフィールドを入力するように求められます。サインアップを完了するには、ユーザーはすべてのカスタムフィールドに入力する必要があります。

サインアップ時に、選択したストレージ オプションに応じて、追加のフィールドがuser_metadata属性に添付されるか、ルートユーザープロファイルに直接設定されます。これらのプロパティには、ユーザー セクションのDashboardからでも、いつでもユーザープロファイルを照会してアクセスできます。

Field Types(フィールドタイプ)

各カスタムフィールドには、1つのFieldType(フィールドタイプ)のみを関連付けることができます。

  • TYPE_NAME

  • TYPE_NUMBER

  • TYPE_PHONE_NUMBER

  • TYPE_EMAIL

ストレージ

各カスタムフィールドには、1つのStorage(ストレージ)のみを関連付けることができます。ルートプロファイル属性のルートレベルに保存するか、user_metadata属性内に保存するかを選択できます。Storage(ストレージ)の場所を指定するには、5つのパラメーターのコンストラクターを使用し、選択したStorageパラメーターを渡します。デフォルトでは、フィールドはuser_metadata属性内に保存されます。

利用可能な選択肢:

  • PROFILE_ROOT

  • USER_METADATA(デフォルト)

フィールドをユーザープロファイルのルートレベルに保存するには、そのキーがエンドポイントのドキュメントにリストされているキーと一致する必要があります。