创建和管理用户 API 密钥 - React Native SDK
Atlas Device SDK 已弃用。 有关详细信息,请参阅弃用页面。
用户 API 密钥允许设备或服务代表用户与 App Services 通信,而无需共享该用户档案。 经过身份验证的用户可以随时撤销用户 API 密钥。 用户 API 密钥不会自行过期。
您可以使用 ApiKeyAuth客户端来管理用户API密钥,而该客户端可通过经过身份验证的用户的User.apiKeys属性进行访问。
React钩子
如果您使用的是 @realm/react
,则可以使用UserProvider
包装的组件中的useUser()
钩子来访问用户的ApiKeyAuth
客户端。
import {useUser} from '@realm/react';
const user = useUser(); const createUserApiKey = async () => { const {_id, key, name, disabled} = await user?.apiKeys.create(apiKeyName); // ...Do something with API key like save it // or share it with external service that authenticates // on user's behalf. };
创建用户 API 密钥。
要创建新的用户 API 密钥,请将在所有用户 API 密钥中唯一的名称传递给ApiKeyAuth.create()。
在您创建用户 API 密钥时,SDK 会返回该密钥的值。 请确保安全存储key
值,以便使用它登录。 如果丢失或未存储key
值,则无法恢复。 您需要创建新的用户 API 密钥。
const {_id, key, name, disabled} = await user?.apiKeys.create(apiKeyName);
查找用户 API 密钥
要获取列出用户所有 API 密钥的数组,请调用ApiKeyAuth.fetchAll()。
要查找特定 API 密钥,请将密钥的_id
传递给ApiKeyAuth.fetch()。
const getUserApiKey = async () => { // 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(apiKey!._id); };
启用或禁用 API 密钥
要启用或禁用用户 API 密钥,请将密钥的_id
传递给ApiKeyAuth.enable()或ApiKeyAuth.disable() 。 禁用密钥后,将无法使用该密钥代表用户登录。
await user!.apiKeys.enable(cloudApiKey!._id);
await user!.apiKeys.disable(cloudApiKey!._id);
删除 API 密钥。
要永久删除用户 API,请将密钥的_id
传递给ApiKeyAuth.delete() 。 已删除的密钥无法恢复。
await user!.apiKeys.delete(cloudApiKey!._id);