Prompt de integração com IA

Copie o bloco abaixo e cole em qualquer IA (ChatGPT, Claude, Copilot, Gemini). Substitua os valores entre < > antes de enviar.


Você é um assistente especialista em integração com servidores de identidade OIDC.

Preciso integrar meu sistema com o Auth Platform.

## Contexto do Auth Platform

O Auth Platform é um servidor de identidade OIDC/OAuth 2.0 rodando em:
  - Auth Service: <URL_DO_AUTH_SERVICE, ex: https://auth.seudominio.com>
  - Admin Console: <URL_DO_ADMIN_CONSOLE, ex: https://admin.seudominio.com>

Credenciais do meu sistema:
  - client_id: <SEU_CLIENT_ID>
  - redirect_uri: <SUA_REDIRECT_URI, ex: https://meuapp.com/callback>
  - escopos: openid email profile offline_access

O token JWT emitido pelo Auth Platform contém os seguintes claims customizados:
  - sub: UUID global do usuário (nunca muda)
  - email: e-mail verificado
  - account_id: UUID da conta ativa neste sistema (usar para isolar dados multi-tenant)
  - roles: array com os nomes das roles do usuário (ex: ["admin", "user"])
  - is_admin: boolean — true se o usuário tem uma role com isAdmin=true
  - resource_scopes: array com os escopos de recurso (ex: ["fin:read", "fin:write"])
  - amr: método de autenticação (ex: ["pwd"], ["pwd","mfa"])

Endpoints OIDC:
  - Discovery: <URL_DO_AUTH_SERVICE>/.well-known/openid-configuration
  - Authorization: <URL_DO_AUTH_SERVICE>/auth
  - Token: <URL_DO_AUTH_SERVICE>/token
  - JWKS: <URL_DO_AUTH_SERVICE>/jwks  ← usar para validar JWTs localmente
  - Logout: <URL_DO_AUTH_SERVICE>/session/end

## Fluxo de autenticação

O Auth Platform usa obrigatoriamente Authorization Code + PKCE (RFC 7636).
Não há client_secret no frontend — o código verifier é suficiente.

## O que meu sistema precisa

Meu sistema é: <DESCREVA: ex: "uma SPA React com Next.js App Router" ou "uma API NestJS" ou "um app mobile React Native">

Preciso que você gere:
1. O código de configuração do cliente OIDC
2. A página/rota de login (inicia o redirect para o Auth Platform)
3. A página/rota de callback (processa o retorno com o code e troca por tokens)
4. Proteção de rotas autenticadas
5. Como ler os claims do token (roles, account_id, is_admin)
6. Como fazer logout completo

## Restrições técnicas

- Validar o JWT localmente usando JWKS (sem chamar o Auth Service a cada request)
- Usar sessionStorage para persistir o token (não localStorage, por segurança)
- O logout deve usar signoutRedirect (não apenas limpar o storage)
- Não usar client_secret no frontend (fluxo PKCE puro)

## Stack do meu projeto

<DESCREVA SUA STACK: ex: "Next.js 14 App Router, TypeScript, oidc-client-ts">
<OU: "NestJS + Passport.js, TypeScript, jose para validar JWT">
<OU: "React 18 + Vite, TypeScript, oidc-client-ts">

## Extras (opcional)

- Meu sistema usa multi-tenant: <SIM/NÃO> — se SIM, preciso isolar dados por account_id
- Preciso de controle de acesso por escopo: <ex: "só usuários com fin:read podem ver /relatorios">
- Preciso de chamadas M2M (serviço a serviço): <SIM/NÃO>

Como usar este prompt

Passo 1 — Copie o bloco acima

Passo 2 — Substitua os valores:

PlaceholderO que colocar
<URL_DO_AUTH_SERVICE>http://localhost:4000 em dev ou https://auth.seudominio.com em prod
<SEU_CLIENT_ID>O clientId do sistema criado no Admin Console → Sistemas
<SUA_REDIRECT_URI>A URL de callback do seu app, ex: http://localhost:3000/callback
<DESCREVA SEU SISTEMA>ex: "SPA React com Vite", "API NestJS", "Next.js App Router"
<DESCREVA SUA STACK>ex: "React 18 + Vite + TypeScript + oidc-client-ts"

Passo 3 — Cole numa IA e envie

A IA terá todo o contexto necessário para gerar o código de integração completo.


Exemplo preenchido

Aqui está um exemplo com valores reais para uma SPA React:

Você é um assistente especialista em integração com servidores de identidade OIDC.

Preciso integrar meu sistema com o Auth Platform.

## Contexto do Auth Platform

O Auth Platform é um servidor de identidade OIDC/OAuth 2.0 rodando em:
  - Auth Service: http://localhost:4000
  - Admin Console: http://localhost:4001

Credenciais do meu sistema:
  - client_id: dc867d92-945d-43fb-b2de-3aa5608aee03
  - redirect_uri: http://localhost:3000/callback
  - escopos: openid email profile offline_access

O token JWT emitido pelo Auth Platform contém os seguintes claims customizados:
  - sub: UUID global do usuário
  - email: e-mail verificado
  - account_id: UUID da conta ativa neste sistema
  - roles: array com nomes das roles (ex: ["admin"])
  - is_admin: boolean
  - resource_scopes: array de escopos (ex: ["carteira:read"])
  - amr: métodos de autenticação (ex: ["pwd"])

Endpoints OIDC:
  - Discovery: http://localhost:4000/.well-known/openid-configuration
  - Authorization: http://localhost:4000/auth
  - Token: http://localhost:4000/token
  - JWKS: http://localhost:4000/jwks
  - Logout: http://localhost:4000/session/end

## O que meu sistema precisa

Meu sistema é: uma SPA React com Vite e TypeScript

Preciso que você gere:
1. Configuração do UserManager (oidc-client-ts)
2. Hook useAuth com login, logout, getUser, getToken
3. Componente ProtectedRoute que redireciona para login
4. Página de callback que troca o code por token
5. Como ler roles e is_admin no componente
6. Fetch autenticado para a API backend

## Stack do meu projeto

React 18 + Vite + TypeScript + oidc-client-ts@3

## Extras

- Multi-tenant: Não
- Controle de acesso: Sim — quero bloquear /admin para usuários sem is_admin=true
- Chamadas M2M: Não

Dicas para melhores resultados

  • Seja específico na stack — mencionar versões ajuda a IA a usar a API correta
  • Descreva o cenário de acesso — "somente admins veem X" gera guards/middlewares já prontos
  • Se usar Next.js App Router, mencione explicitamente — a IA pode gerar código de Pages Router por padrão
  • Se precisar de Token Exchange (serviço A chama serviço B), adicione: "Preciso de Token Exchange RFC 8693 onde Serviço A passa o token do usuário para Serviço B com escopo reduzido"