Auth0.Android:ユーザー管理
Management APIには、以下のタスクなど、アプリケーションのユーザー管理に使用できる機能が備わっています。
さまざまなプロバイダーから取得した個別のユーザーアカウントを1つのプロファイルにリンクする。詳細については、「ユーザーアカウントをリンクする」をお読みください。
ユーザーアカウントのリンクを解除して、個別のアイデンティティに戻す。
ユーザーメタデータを更新する。詳細については、「ユーザープロファイルでのメタデータの使い方」をお読みください。
UsersAPIClientを初期化する
使い始めるには、プライマリーIDのaccount
とトークンを渡して、新しいUsersAPIClient
インスタンスを作成します。ユーザーのリンクでは、このプライマリーIDがデータを保持するユーザープロファイルになり、これに他のIDをリンクさせます。
val account = Auth0("{yourClientId}", "{yourDomain}")
val client = UsersAPIClient(account, "token")
Was this helpful?
ユーザーをリンクする
ユーザーアカウントをリンクすると、ユーザーが他のアカウントでも認証できるようになります。認証にどのアカウントを使用しても、同じプロファイルでログインします。アカウントとリンクしない場合、Auth0はすべてのアカウントをそれぞれ個別のプロファイルとして扱います。
link
メソッドは、プライマリーユーザーのIDとセカンダリーユーザーのトークン(このIDでログイン後に取得するトークン)という2つのパラメーターを受け付けます。ユーザーIDはこのユーザーアカウントの一意の識別子です。IDの形式がfacebook|1234567890
の場合、必要なIDは区切り文字のパイプに後続する部分です。
client
.link("primary user id", "secondary user token")
.start(object: Callback<List<UserIdentity>, ManagementException>() {
override fun onSuccess(payload: List<UserIdentity>) {
// Got the updated identities! Accounts linked.
}
override fun onFailure(error: ManagementException) {
// Error!
}
})
Was this helpful?
ユーザーをリンク解除する
ユーザーをリンク解除すると、アカウントを個別のプロファイルに戻します。unlink
メソッドは、プライマリーユーザーのID、セカンダリーユーザーのID、(セカンダリーユーザーの)セカンダリープロバイダーという3つのパラメーターを受け付けます。
users
.unlink("primary user id", "secondary user id", "secondary provider")
.start(object: Callback<List<UserIdentity>, ManagementException>() {
override fun onSuccess(payload: List<UserIdentity>) {
// Got the updated identities! Accounts linked.
}
override fun onFailure(error: ManagementException) {
// Error!
}
})
Was this helpful?
アカウントのリンクでは、セカンダリーアカウントのメタデータはプライマリーアカウントのメタデータとマージされません。同様に、2つのアカウントのリンク解除では、セカンダリーアカウントはプライマリーアカウントのメタデータを保持しません。
ユーザーメタデータを更新する
メタデータの更新では、metadata
オブジェクトを作成してから、updateMetadata
メソッドを呼び出して、ユーザーIDとmetadata
オブジェクトを渡します。このオブジェクトの値は、同じキーを持つ既存の値を上書きするか、ユーザーメタデータに値がない場合は新しい値を追加します。
val metadata = mutableMapOf<String, Any?>()
metadata.put("name", listOf("My", "Name", "Is"));
metadata.put("phoneNumber", "1234567890");
users
.updateMetadata("user id", metadata)
.start(object: Callback<UserProfile, ManagementException>() {
override fun onSuccess(payload: UserProfile) {
// Metadata updated
}
override fun onFailure(error: ManagementException) {
// Error!
}
})
Was this helpful?