Blazor ottiene il token jwt all'accesso o registrati

blazor

Domanda

Devo ottenere la risposta di un token proveniente da un webapi di asp.net che è così

return new JwtSecurityTokenHandler().WriteToken(token);

e dalla pagina di login di Blazor

return new JwtSecurityTokenHandler().WriteToken(token);

E ottengo un errore di serializzazione perché la risposta si aspetta un oggetto Emisor e non il token che in realtà voglio ottenere. Come soluzione alternativa ho aggiunto una proprietà Token stringa alla classe Emisor

return new JwtSecurityTokenHandler().WriteToken(token);

e restituire l'intero Emisor con il token come Property, e in quel modo sono riuscito a ottenerlo e memorizzarlo nella memoria locale. Ma penso che non sia il modo giusto per farlo, penso di dover essere in grado di ottenere il token senza far parte di Emisor

Risposta accettata

Ho creato un metodo di estensione per questo scopo:

    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();

    }

e quindi usarlo in questo modo:

    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();

    }

Disponibile anche su nuget




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché