Visão geral
Um pacote para o navegador e para o servidor, com um tipo de resultado em vez de exceções.
O @nulvless/nulvless-js é o único ponto de integração de que você precisa. Ele cobre
autenticação, verificação de permissões, gestão de contas e comunicações, e
funciona do mesmo jeito num bundle de navegador e num processo Node.
Um pacote, dois clients, e os mesmos nomes de método nos dois — o que muda é quais namespaces existem e se a sessão é guardada para você.
npm install @nulvless/nulvless-jsDois pontos de entrada
Qual deles você usa é decidido pela chave que você tem.
createClient | createServerClient | |
|---|---|---|
| Chave | Publicável pk-… | Secreta sk-… |
| Roda em | Navegador | Node, runtimes de edge, workers |
| Armazenamento de sessão | Configurável | Nenhum |
auth.* | ✓ | ✓ |
auth.factors.* | ✓ | ✓ |
auth.users.* | ✓ | ✓ |
auth.sessions.* | ✓ | ✓ |
auth.security.* | ✓ | ✓ |
auth.challenges.* | ✓ | ✓ |
auth.oauth.* | ✓ | ✓ |
auth.grants.* | — | ✓ |
auth.admin.* | — | ✓ |
comms.* | — | ✓ |
Veja Clients para saber como criar cada um.
Toda chamada devolve um resultado
Nenhum método lança exceção por padrão. Cada um devolve { data, error }, e
exatamente um dos dois está preenchido.
const { data, error } = await nulvless.auth.signIn({ email, password });
if (error) {
// error.code, error.message, error.status_code
return;
}
// data.access_token é garantido aquiOs nomes de campo trafegam em snake_case, e o SDK não renomeia nada —
access_token, refresh_token, expires_in, status_code. Isso é
deliberado: o que você lê na doc é o que você vê na aba de rede.
Um método foge do padrão. O getAccessToken()
devolve a string do token ou null direto, sem embrulho de resultado — não há
error para checar.
Veja Tratamento de erros se você preferir trabalhar com exceções, e Códigos de exceção para o que cada falha significa.
O que existe dentro de auth
| Namespace | Para |
|---|---|
auth.* | Cadastro, entrada, OAuth, tokens, verificação de sessão |
auth.users | O perfil e as identidades do próprio usuário autenticado |
auth.sessions | Listar e revogar sessões, sudo mode |
auth.factors | Cadastro de MFA, códigos de recuperação |
auth.challenges | Códigos de uso único e desafios de MFA |
auth.security | Troca de senha e configurações de segurança |
auth.add · switch · deselect · list · remove | Multi-conta — só no navegador, opt-in |
auth.grants | Papéis, grants e membros — só no servidor |
auth.admin | Administração de usuários, papéis, apps OAuth — só no servidor |
auth.oauth | Fluxos de provedores OAuth |
E fora de auth, apenas no client de servidor:
| Namespace | Para |
|---|---|
comms.email · comms.sms · comms.templates | Envio e gestão de mensagens |
Essa é a superfície inteira. O createClient expõe somente auth; o
createServerClient expõe auth e comms. O Storage também é exportado, mas
ele é o conjunto de adaptadores de persistência de sessão, não um namespace que
você chama — veja Storage.