BlazorWASM中的IHttpClientFactory.CreateClient(..)函数返回的客户端不包含JWTtoken头信息。
创始人
2024-12-21 22:00:26
0

为了在IHttpClientFactory.CreateClient(..)函数返回的HttpClient实例中添加JWT token头信息,我们可以在startup.cs中配置一个HttpClient名称,并为其指定一个处理程序Pipeline,以便在向后端发出请求时,该Pipeline会向请求中添加JWT token头信息。

以下是示例代码:

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpClient("MyHttpClient", (httpClient) =>
    {
        httpClient.BaseAddress = new Uri(Configuration.GetValue("ApiBaseUrl"));
    })
    .AddHttpMessageHandler(); // 添加处理程序

    services.AddTransient(); // 注册处理程序
}

AuthorizationMessageHandler.cs

public class AuthorizationMessageHandler : DelegatingHandler
{
    private readonly IAccessTokenProvider _tokenProvider;

    public AuthorizationMessageHandler(IAccessTokenProvider tokenProvider)
    {
        _tokenProvider = tokenProvider;
    }

    protected override async Task SendAsync(
        HttpRequestMessage request,
        CancellationToken cancellationToken)
    {
        request.Headers.Authorization =
            new AuthenticationHeaderValue("Bearer", await _tokenProvider.GetAccessToken());
            
        return await base.SendAsync(request, cancellationToken);
    }
}

上述代码中,我们在IHttpClientFactory中使用AddHttpClient扩展方法创建了一个名为“MyHttpClient”的HttpClient实例,并为其添加了一个名为“AuthorizationMessageHandler”的HttpMessageHandler作为管道处理程序。

在AuthorizationMessageHandler.cs中,我们继承了DelegatingHandler类,并在SendAsync方法中向请求中添加了JWT token头信息。最后,我们将AuthorizationMessageHandler类注册为服务,以便可以在startup.cs文件中使用AddHttpMessageHandler方法将其添加到HttpClient Pipeline中。

这样,我们就成功地为Blazor WASM应用程序中的IHttpClientFactory.CreateClient(..)函数返回的HttpClient实例添加了JWT token头信息。

相关内容

热门资讯

原本有开挂"微乐钻石... 微乐钻石兑换码开挂教程视频分享装挂详细步骤在当今的网络游戏中,微乐钻石兑换码作为一种经典的娱乐方式,...
从前有开挂"皇豪互娱... 从前有开挂"皇豪互娱控制系统app"开挂(透视)辅助下载(细节揭秘有挂教程);亲,皇豪互娱控制系统a...
固有有辅助"西元文山... 西元文山攻略是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微信(...
从来有辅助"温州茶园... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
一向有辅助"wepo... wepoker辅助器免费下载是一款专注玩家量身打造的游戏记牌类型软件,在wepoker辅助器免费下载...
本来有辅助"poke... 本来有辅助"pokemmo手机辅助软件"开挂(透视)辅助软件(玩家教你有挂功能);无需打开直接搜索加...
往昔有开挂"微信卡五... 往昔有开挂"微信卡五星辅助"开挂(透视)辅助透视(透视教程有挂规律) 【无需打开直接搜索加薇1367...
固有有辅助"福建兄弟... 固有有辅助"福建兄弟十三水有没有挂"开挂(透视)辅助下载(分享教程有挂教学);无需打开直接搜索加薇1...
本然有开挂"打两圈兴... 本然有开挂"打两圈兴化辅助"开挂(透视)辅助安装(揭秘教程有挂分享)《详细加薇136704302咨询...
从前有辅助"wepo... wepoker插件程序激活码是一款专注玩家量身打造的游戏记牌类型软件,在wepoker插件程序激活码...