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:
| Placeholder | O 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"