创建和管理用户 API 密钥 — Web SDK
Atlas Device SDK 已弃用。 有关详细信息,请参阅弃用页面。
Overview
您可以使用Web SDK来创建和管理用户API密钥,从而允许服务代表现有用户登录您的应用并交互,而无需用户重新进行身份验证。
用户API密钥作为API密钥身份验证提供者的一部分进行托管,但只能为与其他非匿名身份验证提供者关联的用户创建。
Web SDK 中的用户对象包括一个 ApiKeyAuth
对象,该对象公开使用该用户的 API 密钥的方法。
创建用户 API 密钥。
要创建新的用户 API 密钥,请使用密钥的标识名称调用ApiKeyAuth.create()
。 该名称必须是在用户的所有 API 密钥中唯一的字符串。
警告
存储 API 密钥值
SDK 仅在您创建用户 API 密钥时返回该密钥的值。 请确保安全存储key
值,以便使用它登录。
如果丢失或未存储key
值,则无法恢复。 您需要创建新的用户 API 密钥。
const user = app.currentUser; const key = await user.apiKeys.create("myApiKey");
查找用户 API 密钥
要获取列出用户所有 API 密钥的数组,请调用ApiKeyAuth.fetchAll()
。 您还可以使用密钥的_id
调用ApiKeyAuth.fetch()
来查找特定的 API 密钥。
const user = app.currentUser; // List all of a user's keys const keys = await user.apiKeys.fetchAll(); // Get a specific key by its ID const key = await user.apiKeys.fetch(API_KEY_ID);
启用或禁用 API 密钥
您可以通过使用密钥的_id
调用ApiKeyAuth.enable()
或ApiKeyAuth.disable()
来启用或禁用用户 API 密钥。 禁用密钥后,将无法使用该密钥代表用户登录。
// Get the ID of a User API Key const user = app.currentUser; const apiKeys = await user.apiKeys.fetchAll(); const keyId = apiKeys[0]["_id"]; // Enable the User API Key await user.apiKeys.enable(keyId); // Disable the User API Key await user.apiKeys.disable(keyId);
删除 API 密钥。
您可以通过使用密钥的_id
调用ApiKeyAuth.delete()
来永久删除用户 API 密钥。 已删除的密钥无法再用于代表用户登录。
// Get the ID of a User API Key const user = app.currentUser; const apiKeys = await user.apiKeys.fetchAll(); const keyId = apiKeys.find((key) => key.name === "apiKeyToDelete")._id; // Delete the User API Key await user.apiKeys.delete(keyId);