Blazor obtenir le jeton jwt lors de l’identification

blazor

Question

Je dois obtenir la réponse d'un jeton venant d'un aspap webapi qui ressemble à ceci

return new JwtSecurityTokenHandler().WriteToken(token);

et de la page de connexion Blazor

return new JwtSecurityTokenHandler().WriteToken(token);

Et je reçois une erreur de sérialisation car la réponse attend un objet Emisor et non le Token que je souhaite réellement obtenir. En guise de solution de contournement, j'ai ajouté une propriété de chaîne Token à la classe Emisor.

return new JwtSecurityTokenHandler().WriteToken(token);

et retourner tout l'émisor avec le jeton en tant que propriété, et ainsi j'ai pu l'obtenir et le stocker dans un stockage local. Mais je pense que ce n'est pas la bonne façon de le faire, je pense que je dois pouvoir obtenir le jeton sans faire partie d'Emiror.

Réponse acceptée

J'ai créé une méthode d'extension à cet effet:

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

    }

et ensuite l'utiliser comme ceci:

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

    }

Aussi disponible sur nuget




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi