[英]How do I add a Bearer Token to the header of a HTTP request?
我在弄清楚如何设置以授权作为密钥和以承载令牌为值的授权标头方面遇到麻烦。
我已经完成了内置身份验证的Web API。 我已经在邮递员上对其进行了测试,并且一切正常。 问题出在邮递员上,我将令牌副本通过它传递到新的键和值,在站点中,我不确定如何在Blazor项目中更改这些值。
在http://testapi.com/api/token/ {username} / {password}输入Get to the API时,API会发回一个代码,我需要将该代码放入标头中。
login.razor
@page "/"
@inject HttpClient Http
<h1>Hello, world!</h1>
Welcome To The New Site
<EditForm Model="@use" OnValidSubmit="@HandleValidSubmit" OnInvalidSubmit="@HandleInvalidSubmit" Context="EditFormContext">
<DataAnnotationsValidator />
<DxFormLayout>
<DxFormLayoutItem Caption="Username:" ColSpanMd="6">
<Template>
<DxTextBox @bind-Text="@use.username" />
</Template>
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Password:" ColSpanMd="6">
<Template>
<DxTextBox @bind-Text="@use.password" />
</Template>
</DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="12">
<Template>
<ValidationSummary />
</Template>
</DxFormLayoutItem>
<DxFormLayoutItem ColSpanMd="12">
<Template>
<button type="submit">Submit</button>
</Template>
</DxFormLayoutItem>
</DxFormLayout>
</EditForm>
@code {
User[] token;
User use = new User();
async void HandleValidSubmit()
{
token = await Http.GetJsonAsync<User[]>("http://testapi.com/api/token/" + use.username + "/" + use.password);
if (token != null)
{
await SaveToken();
await SetAuthorizationHeader();
Console.WriteLine("OnValidSubmit");
}
}
private void HandleInvalidSubmit()
{
Console.WriteLine("OnInvalidSubmit");
}
private async Task SaveToken()
{
}
private async Task SetAuthorizationHeader()
{
}
class User
{
public string username { get; set; }
public string password { get; set; }
}
}
我使用API / IdentityServer4 / Blazor(服务器端)进行了类似的设置。 也许您可以使用我在这个stackoverflow问题中发布的一些代码。
如果您使用的是服务器端Blazor @PascalR。答案应该可以带您进入正确的路径。 对于客户端Blazor:
要将令牌保存在本地存储中,我建议使用: Blazored Local storage 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.