DexCode Packages
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 ?? [];
PropTipoPadrãoDescriçã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_accessRecord<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_usernamestring—Login do usuário.
namestring—Nome completo.
given_namestring—Primeiro nome.
family_namestring—Sobrenome.
emailstring—E-mail.
email_verifiedboolean—Se o e-mail foi verificado.
scopestring—Escopos concedidos, ex.: "openid email profile".

Também tem jti, aud, typ, sid, acr, auth_time e allowed-origins.