Manage User API Keys - Swift SDK
On this page
You can manage a user API key with a user's API Key auth instance, which you can access through the user's apiKeysAuth property.
Create a User API Key
You can create a user API key with the API key auth instance's createAPIKey method.
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.
RLMApp *app = [RLMApp appWithId:YOUR_APP_ID]; // ... log in ... RLMUser *user = [app currentUser]; RLMAPIKeyAuth *client = [user apiKeysAuth]; // Create the API key [client createAPIKeyWithName:@"someKeyName" completion:^(RLMUserAPIKey *apiKey, NSError *error) { if (error != nil) { // ... handle Error ... } else { // ... use apiKey ... } }];
let app = App(id: YOUR_APP_SERVICES_APP_ID) // ... log in ... // User must not be an anonymous user. let user = app.currentUser! let client = user.apiKeysAuth client.createAPIKey(named: "someKeyName") { (apiKey, error) in guard error == nil else { print("Failed to create key: \(error!)") return } // Use apiKey }
Look up a User API Key
You can look up a user API key with the API key auth instance's fetchAPIKey method.
RLMApp *app = [RLMApp appWithId:YOUR_APP_ID]; // ... log in ... RLMUser *user = [app currentUser]; RLMAPIKeyAuth *client = [user apiKeysAuth]; // Fetch API key by a specific ObjectId NSError *error = nil; RLMObjectId *objectId = [[RLMObjectId alloc] initWithString:@"someObjectId" error:&error]; [client fetchAPIKey:objectId completion:^(RLMUserAPIKey *apiKey, NSError *error) { if (error != nil) { // ... handle error ... } else { // ... use apiKey ... } }]; // Fetch all API keys [client fetchAPIKeysWithCompletion:^(NSArray<RLMUserAPIKey *> *keys, NSError *error) { if (error != nil) { // ... handle error ... } else { for (RLMUserAPIKey *key in keys) { // ... use key ... } } }];
let app = App(id: YOUR_APP_SERVICES_APP_ID) // ... log in ... let user = app.currentUser! let client = user.apiKeysAuth // Fetch a specific API key by ObjectId client.fetchAPIKey(ObjectId("00112233445566778899aabb")) { (maybeApiKey, error) in // ... } // Fetch all API keys client.fetchAPIKeys { (keys, error) in guard error == nil else { fatalError("Failed to fetch keys: \(error!)") } for key in keys! { // use key print(key.name) } }
Enable or Disable a User API Key
You can enable or disable a user API key with the API key auth instance's enableAPIKey and disableAPIKey methods.
RLMApp *app = [RLMApp appWithId:YOUR_APP_ID]; // ... log in ... RLMUser *user = [app currentUser]; RLMAPIKeyAuth *client = [user apiKeysAuth]; // Enable the API key with specific objectId RLMObjectId *objectId = [[RLMObjectId alloc] initWithString:@"00112233445566778899aabb" error:nil]; [client enableAPIKey:objectId completion:^(NSError *error) { // Handle error if any. Otherwise, enable was successful. }]; RLMUserAPIKey *apiKey; // ... Get an API key ... // Disable the API key [client disableAPIKey:[apiKey objectId] completion:^(NSError *error) { // Handle error if any. Otherwise, disable was successful. }];
let app = App(id: YOUR_APP_SERVICES_APP_ID) // ... log in ... let user = app.currentUser! let client = user.apiKeysAuth // Enable the API key client.enableAPIKey(ObjectId("00112233445566778899aabb")) { (error) in // ... } let apiKey: UserAPIKey? // ... Obtain a user API key ... // Disable the API key client.disableAPIKey(apiKey!.objectId) { (error) in // ... }
Delete a User API Key
You can delete a user API key with the API key auth instance's deleteAPIKey method.
RLMApp *app = [RLMApp appWithId:YOUR_APP_ID]; // ... log in ... RLMUser *user = [app currentUser]; RLMAPIKeyAuth *client = [user apiKeysAuth]; RLMUserAPIKey *apiKey; // ... Get an API key ... [client deleteAPIKey:[apiKey objectId] completion:^(NSError *error) { // Handle error if any. Otherwise, delete was successful. }];
let app = App(id: YOUR_APP_SERVICES_APP_ID) // ... log in ... let user = app.currentUser! let client = user.apiKeysAuth let apiKey: UserAPIKey? // ... Obtain a user API key ... client.deleteAPIKey(apiKey!.objectId) { (error) in guard error == nil else { print("Failed to delete key: \(error!)") return } // Key deleted }