Documentação
ReferênciaSDK JavaScriptConfiguração

Configuração

Todas as opções que os dois clients aceitam, e como sobrescrevê-las por requisição.

Uma nota sobre convenção de nomes

O SDK mistura duas convenções de propósito:

  • Opções da biblioteca são camelCase — throwErrors, trackUser, storageKeys.
  • Campos que trafegam para a plataforma são snake_case — access_token, status_code, redirect_uri.

Nada é renomeado na ida nem na volta, então o que você lê numa resposta é o que a plataforma enviou.

ClientOptions

Aceito pelo createClient. O createServerClient aceita os mesmos, menos storage e storageKeys.

language() => LanguageOptionaldefault 'en-US'

Devolve a tag BCP 47 enviada em cada requisição.

timeoutnumberOptional

Aborta requisições depois desse tanto de milissegundos.

debugbooleanOptional

Loga informações de requisição e resposta no console.

headersRecord<string, string> | (() => Record<string, string>)Optional

Headers extras mesclados em cada requisição. Passe uma função para resolvê-los por requisição.

throwErrorsbooleanOptionaldefault false

Lança NulvlessException em vez de devolver { data: null, error }.

storageNulvlessStorageOptional

Adaptador para persistir os tokens de sessão. O padrão é o localStorage no navegador e um armazenamento em memória do próprio client fora dele. Só no client de navegador — veja Storage.

storageKeys{ token?: string; accounts?: string }Optional

Sobrescreve as chaves de armazenamento. O padrão é nlv-&lt;slug&gt;-token e nlv-&lt;slug&gt;-token-accounts. Só no navegador.

autoRefreshbooleanOptionaldefault true

Renova o access token num timer, antes de vencer, em vez de esperar uma requisição encontrá-lo vencido. Desligue quando o host controla a renovação. Só no navegador — veja SessionManager.

multiUserbooleanOptionaldefault false

Mantém várias contas autenticadas e habilita auth.add / list / switch / remove. Só no navegador.

trackUserbooleanOptional

Envia nlv-user-tracking, para a plataforma coletar dados de dispositivo e navegador da sessão.

Headers preguiçosos

O headers aceita uma função, resolvida a cada requisição. É assim que você repassa um valor por requisição sem reconstruir o client:

createServerClient(url, key, {
  trackUser: true,
  headers: () => forwardUserHeaders(cls.get('req')),
});

Opções por requisição

A maioria dos métodos recebe um objeto de opções como último argumento, que sobrescreve a configuração do client naquela chamada.

await nulvless.auth.signIn(params, {
  timeout: 5000,
  throwErrors: true,
  headers: forwardUserHeaders(req),
});

Os headers da requisição são mesclados sobre os do client sem diferenciar maiúsculas e minúsculas: um header que você passa substitui o do client ou um padrão com o mesmo nome em qualquer capitalização, então nenhum header é enviado duas vezes.

O nonce não é uma opção de requisição. Ele vai nos params do método protegido por sudo — é assim que uma única chamada satisfaz o sudo mode sem elevar a sessão inteira:

await nulvless.auth.sessions.revoke({ id, nonce });

Ele é enviado como header nlv-sudo-nonce, nunca no corpo.

Idioma

createClient(url, key, { language: () => 'pt-BR' });

A tag decide em qual idioma de template a plataforma renderiza qualquer mensagem que aquela chamada dispare — um e-mail de verificação enviado durante o cadastro, por exemplo.

Nesta página