Verificar solicitações

As solicitações para o webhook de conversa são assinadas com um token de autorização no cabeçalho, usando o seguinte formato:

google-assistant-signature: "<JWT token>"

O token de autenticação segue o formato JSON Web Token, em que o valor do campo de público-alvo é igual ao ID do projeto do Console do Actions para o aplicativo. Para verificar a assinatura, descompacte o token e verifique se o campo de público-alvo corresponde ao ID do projeto do aplicativo. É possível fazer isso com uma biblioteca de credenciais compatível com JWT, como o cliente Node.js das APIs do Google, ou usando a biblioteca de cliente Node.js do Actions on Google, como mostrado abaixo: ConversationOptions#verification

const {conversation} = require('@assistant/conversation');

const app = conversation({verification: 'nodejs-cloud-test-project-1234'});
// HTTP Code 403 will be thrown by default on verification error per request.

O formato do JWT é este:

{
  "iss": "https://accounts.google.com"
  "aud": [project-id],
  "nbf": number,
  "iat": number,
  "exp": number,
  "jti": string
}