Blazor가 로그인 또는 등록시 jwt 토큰을받습니다.

blazor

문제

나는 이런 식으로 asp.net webapi 형태의 토큰의 응답을 얻어야한다.

return new JwtSecurityTokenHandler().WriteToken(token);

Blazor 로그인 페이지에서

return new JwtSecurityTokenHandler().WriteToken(token);

그리고 응답은 Emisor 객체를 기대하고 실제로 얻고 자하는 토큰이 아니기 때문에 직렬화 오류가 발생합니다. 임시 해결책으로 Emisor 클래스에 문자열 토큰 속성을 추가했습니다.

return new JwtSecurityTokenHandler().WriteToken(token);

토큰을 가진 Emisor 전체를 Property로 반환하면 로컬 저장소에 저장할 수 있습니다. 하지만 그것이 올바른 방법이 아니라고 생각합니다. Emisor에 속하지 않고 토큰을 얻을 수 있어야한다고 생각합니다.

수락 된 답변

나는이 목적을위한 확장 방법을 만들었다.

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

    }

다음과 같이 사용하십시오.

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

    }

너겟 에서도 사용 가능




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.