Backend · Segurança

JWT HS256 com Web Crypto

Emite e valida JWT HS256 sem biblioteca, checando exp, nbf, iat, iss e aud com tolerância de relógio e recusando alg none. Autenticação de API que roda até na edge.

JWT · Auth · Web Crypto · 9 testes automatizados · Licença MIT · Criado por FlowCore Soluções LTDA

Como instalar

  1. Funciona onde você já roda Node 18+, Cloudflare Workers, Deno, Bun, Vercel e Netlify Functions. Zero dependência: só fetch e Web Crypto, que já vêm no runtime.
  2. Crie src/lib/jwt.ts Cole o código da aba Código.
  3. Use
    const token = await assinarJwt({ papel: "admin" }, env.JWT_SECRET, {
      expiraEm: "15m", emissor: "api.empresa.com.br", assunto: "u_123",
    });
    const r = await verificarJwt(token, env.JWT_SECRET, { emissor: "api.empresa.com.br" });
    if (!r.valido) return new Response(r.motivo, { status: 401 });
  4. Rode o teste junto O arquivo de teste (aba Teste) cobre 9 cenários. Copie para src/lib/ ao lado e rode:
    npm install -D vitest
    npx vitest run src/lib

Código no GitHub · Biblioteca de códigos

Mais em Segurança