Manage User API Keys - Kotlin SDK
On this page
You can use the Kotlin SDK to create and manage User API keys that allow devices or services to communicate with Realm on behalf of an existing user without requiring the user to re-authenticate.
User API keys are associated with a user object created by another non-anonymous authentication provider. Each user can associate up to 20 user keys with their account.
You can manage keys through the user.apiKeyAuth interface.
Tip
User API keys are not the same as server API keys, which allow a user or service to directly authenticate with Realm using the API Key authentication provider. To learn more about server API keys, refer to API Key Authentication.
Create a User API Key
To create a new user API key, pass a unique key name to ApiKeyAuth.create(). The created key will be associated with the logged-in user and can be used to interact with Realm on their behalf. You cannot create user API keys for anonymous users.
Warning
Store the API Key Value
The SDK only returns the value of the user API key when you create it. Make
sure to store the key
value securely so that you can use it to log in.
If you lose or do not store the key
value there is no way to recover it.
You will need to create a new user API key.
val user = app.currentUser!! val provider = user.apiKeyAuth // Create an API key for the logged-in user val key = provider.create("apiKeyName")
Look up a User API Key
To get a list of all user API keys associated with the logged-in user, call ApiKeyAuth.fetchAll().
To find a specific user API key for the logged-in user, pass the key's id
to
ApiKeyAuth.fetch().
val user = app.currentUser!! val provider = user.apiKeyAuth // Get all keys for the logged-in user val apiKeys = provider.fetchAll() // Get a specific key by its ID val apiKey = provider.fetch(key.id)
Enable or Disable a User API Key
You can enable or disable a key by calling
ApiKeyAuth.enable()
or
ApiKeyAuth.disable()
with the key's id
.
You cannot use disabled keys to log in on behalf of the user.
val user = app.currentUser!! val provider = user.apiKeyAuth // ... fetch the key to enable or disable // Enable an API key that's currently disabled provider.enable(key.id) // Disable an API key that's currently enabled provider.disable(key.id)
Delete a User API Key
To permanently remove a specific user API key, pass the
key's id
to
ApiKeyAuth.delete().
You cannot recover deleted keys or use them to log in on behalf of the user.
val user = app.currentUser!! val provider = user.apiKeyAuth // ... fetch the key to delete // Delete the specified API key provider.delete(key.id)