Confira o exemplo
Os arquivos desta POC, com o destino de cada um.
Por que não uma chave só
Uma chave por canal é o que faz um vazamento no app não alcançar o site, e o webhook de homologação não disparar no endpoint de produção. É também o que deixa você revogar a chave de um canal sem derrubar o outro.O registro de canais
lib/channels.ts
Criar no canal certo
app/api/verifications/route.ts
Um endpoint de webhook por canal
A rota carrega o canal no caminho, e cada uma confere contra o seu próprio segredo:app/api/webhooks/[channel]/route.ts
https://seu-dominio/api/webhooks/site e https://seu-dominio/api/webhooks/app.
Um endpoint por canal e não um endpoint com vários segredos: tentar cada segredo até um bater
transforma uma falha de assinatura em algo indistinguível de um canal mal configurado.
Antes de rodar
.env
Use uma integração sandbox. Nenhum dos três valores vai para o browser ou para o app.
Nesta POC cada variável ganha o sufixo do canal:
.env
O que esta POC não faz
- Canais fixos em código. Com muitos canais, isso vira tabela e cache.
- Sem rotação de chave por canal sem downtime.
- Sem métrica separada por canal.
Próximo passo
Integrações
Ambientes, origens, chaves e aparência.
Cadastrar webhooks
Escopo por integração e por conta.