Menu
@dexcode/types
Tipos de autenticação
Tipos TypeScript para tokens JWT e Keycloak. O pacote só tem tipos, então não adiciona nada ao bundle.
Importação
ts
import type { JwtPayload, KeycloakJwtPayload, TypeSystemAuth } from "@dexcode/types";TypeSystemAuth
Tipo de autenticação usada para verificar o acesso a um sistema.
ts
type TypeSystemAuth = "keycloak" | "personalizado";JwtPayload
Payload genérico de qualquer JWT. Só o exp é conhecido; os demais campos são unknown.
ts
type JwtPayload = {
exp?: number;
[key: string]: unknown;
};KeycloakJwtPayload
Payload do access token emitido pelo Keycloak.
ts
import { decodeJwt } from "@dexcode/helpers";
import type { KeycloakJwtPayload } from "@dexcode/types";
const payload = decodeJwt<KeycloakJwtPayload>(token);
const roles = payload?.resource_access?.["dexcode-system"]?.roles ?? [];| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
| exp* | number | — | Expiração em segundos (Unix time). |
| iat* | number | — | Quando o token foi emitido. |
| sub* | string | — | Id do usuário no Keycloak. |
| iss* | string | — | URL do realm que emitiu o token. |
| azp* | string | — | Client que pediu o token. |
| resource_access | Record<string, { roles: string[] }> | — | Sistemas (clients) que o usuário acessa e as roles em cada um. |
| realm_access | { roles: string[] } | — | Roles do usuário no realm. |
| preferred_username | string | — | Login do usuário. |
| name | string | — | Nome completo. |
| given_name | string | — | Primeiro nome. |
| family_name | string | — | Sobrenome. |
| string | — | E-mail. | |
| email_verified | boolean | — | Se o e-mail foi verificado. |
| scope | string | — | Escopos concedidos, ex.: "openid email profile". |
Também tem jti, aud, typ, sid, acr, auth_time e allowed-origins.