Estoy creando una API en NodeJS y un SDK para las personas que desean usar la API para realizar solicitudes. Cuando alguien quiere realizar una solicitud, debe pasar una clave API al método que está utilizando. Por ejemplo, una solicitud se vería como messages.send({body: "Hello"}, "key_randomKey"); .
¿Es seguro enviar claves en solicitudes? En este escenario, la clave se pasaría como una propiedad de solicitud, se accedería a ella en el servidor backend real para la API y luego se codificaría allí y se compararía con la de la base de datos (las claves también se crean en el servidor backend, no en el servidor que hace la solicitud). ¿Es este el enfoque incorrecto? Me pregunto cómo hacer esto de forma segura.
Le sugiero que envíe la clave en el encabezado de autorización como token de portador.
Use un interceptor http de algún tipo en la interfaz que clonará cada llamada API y agregará el encabezado de autorización con la clave. Luego, en el backend, puede acceder al token, idealmente a través de un middleware y compararlo y verificarlo con la base de datos.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization