Estoy creando un bot de Google Chat con NestJS. Acepta comandos de barra y permite la interacción con un sistema ya existente. Los mensajes devueltos en el extremo POST a veces incluyen información privada o JWT, por lo que necesito mejorar la seguridad.
Necesito una forma de autenticar e identificar de manera confiable al usuario que activó el comando bot. Actualmente estoy usando el correo electrónico del usuario proporcionado en el cuerpo POST y validando el token de portador del encabezado.
¿Hay una buena manera de autenticar al usuario y asegurarse de que alguien no haya cambiado el correo electrónico en el cuerpo de la solicitud?
Una solución que podría funcionar:
En lugar de devolver el contenido del mensaje de respuesta en la respuesta POST, envíe el mensaje directamente al usuario para el que se solicitó.
Entonces, incluso si alguien cambia el correo electrónico en el cuerpo de la solicitud a otra persona, no recibe la respuesta, solo la recibe el correo electrónico solicitado.
Puede verificar la autenticidad de la aplicación verificando que el token del portador lo envíe al servidor
POST Host: yourappurl.com Authorization: Bearer AbCdEf123456 Content-Type: application/json User-Agent: Google-DynamiteGoogle Chat incluye un token de portador en el encabezado de
Authorizationde cada solicitud HTTPS a una aplicación.
Puede verificar su token de portador utilizando una biblioteca de cliente API de Google de código abierto, en su caso, Node.js
Puedes revisar la guía completa here