Menu
@dexcode/helpers
JWT e rotas
Funções usadas pelo
createProxy e exportadas para você usar onde precisar. Nenhuma depende do Next.js.isPublicRoute
Diz se um caminho bate com alguma rota da lista. * é coringa, e /produtos/* também libera o próprio /produtos.
ts
import { isPublicRoute } from "@dexcode/helpers";
isPublicRoute("/produtos/10", ["/produtos/*"]); // true
isPublicRoute("/produtosx", ["/produtos/*"]); // falseTeste aqui
Rota pública: o proxy libera sem login
- pública
- pública
- pública
- pública
- protegida
- protegida
decodeJwt, isTokenExpired e hasKeycloakSystemAccess
ts
import { decodeJwt, hasKeycloakSystemAccess, isTokenExpired } from "@dexcode/helpers";
import type { KeycloakJwtPayload } from "@dexcode/types";
const payload = decodeJwt<KeycloakJwtPayload>(token); // null se o token estiver malformado
if (payload && !isTokenExpired(payload) && hasKeycloakSystemAccess(payload, "dexcode-system")) {
console.log(payload.preferred_username);
}decodeJwt(token): retorna o payload ounull. Não valida a assinatura.isTokenExpired(payload, clockSkewSeconds?):truese passou doexpou se o token não temexp.hasKeycloakSystemAccess(payload, system):truese o sistema existe emresource_access.
Teste aqui
O token é decodificado no seu navegador e não é enviado para lugar nenhum.