ユーザー API キーの管理 - Swift SDK
Atlas Device SDK は非推奨です。 詳細については、 の廃止ページを参照してください。
ユーザーのAPI キー認証インスタンスを使用してユーザー API キーを管理できます。これは、ユーザーの apiKeysAuthプロパティからアクセスできます。
ユーザー API キーの作成
API キー認証インスタンスのcreateAPIKeyメソッドを使用してユーザー API キーを作成できます。
警告
API キー値の保存
SDK は、作成時にのみユーザー API キーの値を返します。 key
の値を安全に保存し、この値を使用してログインできるようにします。
key
の値を失うか保存しない場合、回復する方法はありません。 新しいユーザー API キーを作成する必要があります。
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 }
ユーザー API キーの検索
API キー認証インスタンスのfetchAPIKeyメソッドを使用してユーザー API キーを検索できます。
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) } }
ユーザー API キーの有効化または無効化
API キー認証インスタンスのenableAPIKeyメソッドとdisableAPIKeyメソッドを使用して、ユーザー API キーを有効または無効にすることができます。
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 // ... }
ユーザー API キーの削除
API キー認証インスタンスのdeleteAPIKeyメソッドを使用してユーザー API キーを削除できます。
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 }