Blazor consigue el token jwt al iniciar sesión o registrarte

blazor

Pregunta

Tengo que obtener la respuesta de un token procedente de asp.net webapi que es así

return new JwtSecurityTokenHandler().WriteToken(token);

y desde la página de inicio de sesión de Blazor

return new JwtSecurityTokenHandler().WriteToken(token);

Y recibo un error de serialización porque la respuesta está esperando un objeto Emisor y no el token que realmente quiero obtener. Como solución, agregué una propiedad Token de cadena a la clase Emisor

return new JwtSecurityTokenHandler().WriteToken(token);

y devolver todo el Emisor con el token como propiedad, y de esa manera pude obtenerlo y almacenarlo en el almacenamiento local. Pero creo que no es la forma correcta de hacerlo, creo que tengo que poder obtener el token sin ser parte de Emisor

Respuesta aceptada

He hecho un método de extinción para este propósito:

    public static async Task<string> SendJsonAsyncRawResult(this HttpClient httpClient, HttpMethod httpMethod, string requestUri, object content)
    {
        var requestJson = JsonUtil.Serialize(content);
        var response = await httpClient.SendAsync(new HttpRequestMessage(httpMethod, requestUri)
        {
            Content = new StringContent(requestJson, Encoding.UTF8, "application/json")
        });

        return await response.Content.ReadAsStringAsync();

    }

y luego usarlo así:

    public static async Task<string> SendJsonAsyncRawResult(this HttpClient httpClient, HttpMethod httpMethod, string requestUri, object content)
    {
        var requestJson = JsonUtil.Serialize(content);
        var response = await httpClient.SendAsync(new HttpRequestMessage(httpMethod, requestUri)
        {
            Content = new StringContent(requestJson, Encoding.UTF8, "application/json")
        });

        return await response.Content.ReadAsStringAsync();

    }

También disponible en nuget




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué