Instalar e configurar
Status do registry: UNPUBLISHED. Instale este SDK somente a partir do checkout do código-fonte do repositório; não use um registry de pacotes externo.
Para uma aplicação de desenvolvedor em outra origem, configure mode: 'oidc' com issuer, clientId e um redirectUri exato. Use o modo same-origin apenas quando a aplicação rotear os endpoints de autenticação do Core em sua origem exata. O XID não possui uma credencial publishable-key.
import { XidClient } from '@xid-kit/core'
const xid = new XidClient({
mode: 'oidc',
issuer: 'https://xid.dev',
clientId: 'client_abc123',
redirectUri: 'https://app.example.com/auth/callback',
})
const authorization = await xid.createAuthorizationUrl({ returnUrl: '/dashboard' })
if (!authorization.ok) throw new Error(authorization.error.message)
window.location.assign(authorization.value)Ciclo de vida da sessão
load()lê/v1/mee popula o usuário, a sessão e a organização ativa.signInPassword()estabelece uma sessão via cookie pelo fluxo de senha do Hosted Auth.getToken()retorna um JWT de curta duração para chamadas de API. Verifique sem rede no seu servidor com JWKS.setActiveOrganization()alterna o contexto da organização e limpa o cache de token antes de recarregar o estado.signOut()revoga o cookie de sessão do navegador.
Auxiliares da Management API
Os helpers da Management API são restritos ao servidor ou à mesma origem exata. Crie um cliente separado com sk_live_* ou sk_test_* no servidor; o modo OIDC do navegador rejeita essas operações.
const management = new XidClient({
apiUrl: 'https://xid.dev',
secretKey: process.env.XID_SECRET_KEY,
})
const keys = await management.listApiKeys()
if (!keys.ok) throw new Error(keys.error.message)
const created = await management.createApiKey({ name: 'CI deploy', scopes: ['read'] })
if (!created.ok) throw new Error(created.error.message)
const revoked = await management.revokeApiKey({ id: created.value.id })
if (!revoked.ok) throw new Error(revoked.error.message)API exportada
| Exportar | Tipo | Finalidade |
|---|---|---|
XidClient |
class | Cliente de navegador de nível superior: load, signIn, getToken, setActiveOrganization, signOut e auxiliares da Management API |
XidStore |
class | Store reativo independente de framework; assine com useSyncExternalStore nos bindings de framework |
TokenManager |
class | Cache de JWT de curta duração e renovação agendada (uso avançado e testes) |
XidApiClient |
class | Cliente HTTP para os endpoints /v1/me e de token |
XidNetworkError |
class | Lançado em falhas de transporte: erro de rede, resposta não JSON, 5xx sem corpo estruturado |
makeXidError |
function | Constrói um XidError estruturado para falhas de validação locais sem chamada de rede |
isXidErrorShape |
function | Type guard: verifica se um valor desconhecido está em conformidade com o formato XidError recebido na rede |
decodeTokenClaims |
function | Decodifica as declarações do payload JWT apenas para agendamento de expiração; não verifica a assinatura |
isTokenExpiring |
function | Retorna true quando o token expira dentro da janela de tolerância (padrão 10 s) |
SESSION_STATUS |
tupla as const | Valores válidos de status de sessão: active, pending, expired, removed, ended, revoked |
CLIENT_STATUS |
tupla as const | Valores válidos de status do cliente: loading, ready, degraded, error |
PACKAGE |
constante de string | Identificador de nome de pacote ‘@xid-kit/core’ |
Tipos
| Tipo | Descrição |
|---|---|
XidUser |
Visão somente leitura do usuário autenticado (sem segredos ou hashes) |
XidOrganization |
Visão pública da organização |
XidOrganizationMembership |
Associação do usuário em uma organização com papel e permissões |
XidSession |
Visão da sessão incluindo status, expiração e organização ativa |
XidApiKey |
Chave de API sem segredo (visualização em lista) |
XidApiKeyWithSecret |
Chave de API retornada uma única vez na criação; inclui o campo key |
XidPage<T> |
Envelope de resposta paginado por cursor |
CreateApiKeyInput |
Entrada para createApiKey |
SignInPasswordInput |
Entrada para signInPassword |
SignInResult |
Resultado de signInPassword: próximo passo ou URL de redirecionamento |
SessionStatus |
União dos valores de SESSION_STATUS |
ClientStatus |
União dos valores de CLIENT_STATUS |
XidState |
Snapshot completo do estado do SDK obtido por assinatura do XidStore |
XidStateListener |
Tipo de callback para listener de mudança de estado |
Unsubscribe |
Tipo de retorno de XidStore.subscribe |
GetTokenOptions |
Opções para getToken: skipCache, leewaySeconds, signal |
XidClientOptions |
Opções discriminadas do construtor XidClient: same-origin aceita apiUrl, secretKey, fetcher e now; oidc exige issuer, clientId e redirectUri. |
TokenResponse |
Formato bruto da resposta do endpoint de token |
ClientStateResponse |
Formato bruto da resposta de /v1/me |
DecodedTokenClaims |
Declarações do payload JWT retornadas por decodeTokenClaims |
Documentação relacionada
Bindings de framework: @xid-kit/react. Verificação no servidor: @xid-kit/backend.