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.

C# .NET 5.0 MVC JWT Middleware autorización de encabezado.

El problema es que cuando inicio sesión a través del método de publicación del controlador MVC, obtengo el token JWT y lo guardo en el encabezado de autorización de HttpContext, el código salta a la capa intermedia donde puedo ver el token en el contexto, pero tan pronto como las funciones de invocación llaman al delegado _next(context), ya no hay más encabezados de autorización. ¿Cómo puedo resolver esto? ¿Existe alguna buena práctica para pasar el token desde el controlador MVC hasta la capa intermedia para poder adjuntar la cuenta al contexto?
Muchas gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución para pasar el token JWT desde el controlador MVC hasta el Middleware

    El problema aquí es que se pierde el encabezado de autorización cuando la solicitud pasa a través del middleware. Para resolver esto, necesitas crear un middleware personalizado que recupere el token JWT del encabezado de autorización y lo adjunte al HttpContext actual. Aquí tienes los pasos para implementar esta solución:

    1. Crea un middleware personalizado implementando la interfaz IMiddleware. Esta interfaz tiene un único método Task InvokeAsync(HttpContext context, RequestDelegate next) que debes implementar.
    2. En el método InvokeAsync del middleware, recupera el token JWT del encabezado Authorization utilizando el método context.Request.Headers.TryGetValue("Authorization", out var token).
    3. Adjunta el token al HttpContext actual utilizando el método context.Items["token"] = token.
    4. Llama al siguiente middleware en la canalización utilizando la instrucción await next(context).
    5. En cualquier middleware o controlador posterior, puedes recuperar el token del HttpContext utilizando la clave context.Items["token"].

    Siguiendo estos pasos, puedes pasar el token JWT desde el controlador MVC hasta el Middleware y adjuntarlo al HttpContext. Este enfoque es una buena práctica porque garantiza que el token esté disponible en cualquier middleware o controlador posterior en la canalización.

Comments are closed.