Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

ユーザー API キーの管理 - Java SDK

項目一覧

  • ユーザー API キーの作成
  • ユーザー API キーの検索
  • ユーザー API キーの有効化または無効化
  • ユーザー API キーの無効化
  • ユーザー API キーの有効化
  • ユーザー API キーの削除

アプリケーション ユーザーは、SDK を使用してユーザー API キーを生成できます。 各デバイスまたはサービスに一意のユーザー API キーを関連付けるため、デバイスやサービスがユーザーに代わって Realm と通信できるようにできます。

ユーザー API キーは、常に別の非匿名認証プロバイダーによって作成されたユーザー オブジェクトに常に関連付けられます。 各ユーザーは、最大 20 個のユーザー キーを自身のアカウントに関連付けることができます。

Tip

ユーザー API キーは、サーバー API キーと同じではありません。これにより、ユーザーまたはサービスは、 API キー認証プロバイダーを使用して Realm で直接認証できます。 サーバー API キーの詳細については、「 API キー認証 」を参照してください。

新しいユーザー API キーを作成するには、ログインしたユーザーの apiKeyAuth インスタンスの create () メソッドまたは createAsync() メソッドを呼び出します。ユーザー API キーはログイン ユーザーに関連付けられ、ユーザーに代わって Realm を操作するために使用できます。 You cannot create user API keys for anonymous users.

警告

API キー値の保存

SDK は、作成時にのみユーザー API キーの値を返します。 keyの値を安全に保存し、この値を使用してログインできるようにします。

keyの値を失うか保存しない場合、回復する方法はありません。 新しいユーザー API キーを作成する必要があります。

User user = app.currentUser();
user.getApiKeys().createAsync("Name-of-the-API-Key", result -> {
if (result.isSuccess()) {
Log.v("EXAMPLE", "Successfully created API key: " + result.get().getValue());
} else {
Log.e("EXAMPLE", "Error creating API key: " + result.getError().getErrorMessage());
}
});
val user = app.currentUser()
user!!.apiKeys.createAsync("Name-of-the-API-Key") { result ->
if (result.isSuccess) {
Log.v("EXAMPLE", "Successfully created API key: ${result.get().value}")
} else {
Log.e("EXAMPLE", "Error creating API key: ${result.error}")
}
}

ログイン ユーザーに関連付けられているすべてのユーザー API キーのリストを取得するには、ログインユーザーの ApiKeyAuth インスタンスの同期 fetchAll() メソッドまたは非同期 fetchAll() メソッドを呼び出します。

User user = app.currentUser();
user.getApiKeys().fetchAll(result -> {
if (result.isSuccess()) {
Log.v("EXAMPLE", "Successfully fetched API keys: " + Arrays.toString(result.get().toArray()));
} else {
Log.e("EXAMPLE", "Error fetching API keys: " + result.getError().getErrorMessage());
}
});
val user = app.currentUser()
user!!.apiKeys
.fetchAll { result ->
if (result.isSuccess) {
Log.v("EXAMPLE", "Successfully fetched API keys: ${result.get().toTypedArray()}")
} else {
Log.e("EXAMPLE", "Error fetching API keys: ${result.error}")
}
}

ログインしたユーザーの特定のユーザー API キーを検索するには、キーの ID をログイン ユーザーの ApiKeyAuth インスタンスの fetch () メソッドまたは fetchAsync() メソッドに渡します。

User user = app.currentUser();
user.getApiKeys().fetchAsync(api_key_id, result -> {
if (result.isSuccess()) {
Log.v("EXAMPLE", "Successfully fetched API key: " + result.get());
} else {
Log.e("EXAMPLE", "Error fetching API key: " + result.getError().getErrorMessage());
}
});
val user = app.currentUser()
user!!.apiKeys.fetchAsync(api_key_id) { result ->
if (result.isSuccess) {
Log.v("EXAMPLE", "Successfully fetched API key: ${result.get()}")
} else {
Log.e("EXAMPLE", "Error fetching API key: ${result.error}")
}
}

特定のユーザー API キーを削除せずに無効にするには、キーの ID を ログインしたユーザーの ApiKeyAuth インスタンスの disable () メソッドまたは disableAsync() メソッドに渡します。

User user = app.currentUser();
user.getApiKeys().disableAsync(api_key_id, result -> {
if (result.isSuccess()) {
Log.v("EXAMPLE", "Successfully disabled API key.");
} else {
Log.e("EXAMPLE", "Error disabling API key: " + result.getError().getErrorMessage());
}
});
val user = app.currentUser()
user!!.apiKeys.disableAsync(api_key_id) { result ->
if (result.isSuccess) {
Log.v("EXAMPLE", "Successfully disabled API key.")
} else {
Log.e("EXAMPLE", "Error disabling API key: ${result.error}")
}
}

以前に無効にした特定のユーザー API キーを有効にするには、キーの ID をログイン ユーザーの ApiKeyAuth インスタンスの enable () メソッドまたは enableAsync() メソッドに渡します。

User user = app.currentUser();
user.getApiKeys().enableAsync(api_key_id, result -> {
if (result.isSuccess()) {
Log.v("EXAMPLE", "Successfully enabled API key.");
} else {
Log.e("EXAMPLE", "Error fetching API key: " + result.getError().getErrorMessage());
}
});
val user = app.currentUser()
user!!.apiKeys.enableAsync(api_key_id) { result ->
if (result.isSuccess) {
Log.v("EXAMPLE", "Successfully enabled API key.")
} else {
Log.e("EXAMPLE", "Error fetching API key: ${result.error}")
}
}

特定のユーザー API キーを永続的に削除するには、キーの ID をログインユーザーの ApiKeyAuth インスタンスの delete () メソッドまたは deleteAsync() メソッドに渡します。

User user = app.currentUser();
user.getApiKeys().deleteAsync(api_key_id, result -> {
if (result.isSuccess()) {
Log.v("EXAMPLE", "Successfully deleted API key.");
} else {
Log.e("EXAMPLE", "Error deleting API key: " + result.getError().getErrorMessage());
}
});
val user = app.currentUser()
user!!.apiKeys.deleteAsync(api_key_id) { result ->
if (result.isSuccess) {
Log.v("EXAMPLE", "Successfully deleted API key.")
} else {
Log.e("EXAMPLE", "Error deleting API key: ${result.error}")
}
}

戻る

ユーザー ID のリンク