我有一个Blazor Webassembly应用,它使用Azure B2C对用户进行身份验证和授权。我能够成功登录并生成令牌,但当我尝试调用我的API时,请求标头中没有令牌。
我遵循了以下指南:https://learn.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/standalone-with-azure-active-directory-b2c?view=aspnetcore-7.0
这是我的程序. cs
var builder = WebAssemblyHostBuilder.CreateDefault(args);
var baseAddress = builder.Configuration.GetValue<string>("BaseUrl");
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
builder.Services.AddHttpClient("WebAPI", client => client.BaseAddress = new Uri(baseAddress))
.AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();
builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>()
.CreateClient("WebAPI"));
builder.Services.AddMsalAuthentication(options =>
{
builder.Configuration.Bind("AzureAdB2C", options.ProviderOptions.Authentication);
options.ProviderOptions.DefaultAccessTokenScopes.Add("https://{domain}.onmicrosoft.com/{App ID}/Api.Access");
});
await builder.Build().RunAsync();
我是否遗漏了向HttpClient添加令牌的行?
1条答案
按热度按时间7xllpg7q1#
我有一个测试在我的身边,我遇到了你的问题,以及在我的身边,这是我用来生成令牌手动调用API。使用代码我的评论。