Criar e gerenciar chaves de API do usuário - React Native SDK
Nesta página
As chaves de API do usuário permitem que dispositivos ou serviços se comuniquem com o App Services em nome de um usuário sem compartilhar as credenciais desse usuário. As chaves de API do usuário podem ser revogadas a qualquer momento pelo usuário autenticado. As chaves de API do usuário não expiram sozinhas.
Você pode gerenciar uma chave de API de usuário com o clienteApiKeyAuth acessado com a propriedade User.apiKeys de um usuário autenticado.
React Hooks
Se você estiver utilizando o @realm/react
, você poderá acessar o cliente ApiKeyAuth
de um usuário com o gancho useUser()
em um componente envolto pelo UserProvider
.
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. };
Criar uma chave de API do usuário
Para criar uma nova chave de API do usuário, passe um nome exclusivo entre todas as chaves de API do usuário para ApiKeyAuth.create().
O SDK retorna o valor da chave de API do usuário quando você a cria. Certifique-se de armazenar o valor key
com segurança para que você possa utilizá-lo para se conectar. Se você perder ou não armazenar o valor key
, não haverá como recuperá-lo. Você precisará criar uma nova chave de API do usuário.
Você não pode criar uma chave de API do usuário para uma chave de API do servidor ou um usuário anônimo.
const {_id, key, name, disabled} = await user?.apiKeys.create(apiKeyName);
Pesquisar uma chave de API do usuário
Para obter uma array que liste todas as chaves API de um usuário, ligue para ApiKeyAuth.fetchAll().
Para encontrar uma chave de API específica, passe o _id
da chave para 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); };
Habilitar ou desabilitar uma chave de API
Para ativar ou desativar uma chave de API do usuário, passe o _id
da chave para ApiKeyAuth.enable() ou ApiKeyAuth.disable(). Quando uma chave está desativada, ela não pode ser usada para fazer login em nome do usuário.
await user!.apiKeys.enable(cloudApiKey!._id);
await user!.apiKeys.disable(cloudApiKey!._id);
Excluir uma chave de API
Para excluir permanentemente uma API de usuário, passe o _id
da chave para ApiKeyAuth.delete(). As chaves excluídas não podem ser recuperadas.
await user!.apiKeys.delete(cloudApiKey!._id);