es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Autenticación de la puerta de enlace de la API y del backend de la aplicación.

Tengo una aplicación con backend y frontend. Estamos utilizando un token JWT para la autenticación y autorización (A2). Ahora estamos planeando utilizar express-gateway como un API gateway (AG) para aliviar al backend de las tareas de enrutamiento y protección, y transferir esa carga al AG. Ahora, dado que estamos utilizando AG, ¿debemos eliminar la lógica de A2 del backend y tratar cualquier solicitud que llegue al backend (cada solicitud se enrutará desde el consumidor hacia el backend a través del AG) como un usuario autenticado y procesar la solicitud sin necesidad de verificar nuevamente? Si la respuesta es sí, aun así necesitaremos obtener el token JWT para extraer la información como el correo electrónico, el rol, etc. ¿Cómo debemos pasar el token desde el AG al backend? Además, el backend podría tener cosas diferentes en el token que el EG. ¿Cómo abordar eso?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, dado que estás utilizando el express-gateway como un API gateway, manejará la autenticación y autorización (A2) por ti. No necesitas tener la lógica de A2 en tu backend. El gateway verificará el token JWT antes de enviar la solicitud al backend, por lo tanto, tu backend puede tratar cada solicitud como proveniente de un usuario autenticado.

    Sin embargo, aún necesitarás el token JWT para extraer la información del usuario, como el correo electrónico y el rol, etc. Dado que el gateway manejará la verificación, puedes pasar el token JWT al backend en los encabezados de la solicitud. En el backend, puedes extraer la carga utilizando bibliotecas como jsonwebtoken.

    Respecto a la carga útil, puedes definir un formato de carga estándar para tu aplicación y hacerlo cumplir en el gateway. De esta manera, tu backend puede esperar una carga útil estándar del gateway y puedes evitar cualquier inconsistencia entre la carga útil en el backend y el gateway.

Comments are closed.