我已经在本地存储中拥有令牌并准备发送到web api,其中控制器或方法具有Authorize属性,这是Blazor客户端,如何发送令牌?
var token = Storage["token"];
await http.GetJsonAsync<string[]>("/api/authorizedController");
我如何在api上记下令牌?它会自动发生还是我必须做些什么?
[Authorize]
[Route("api/[controller]")]
配合,您还需要服务器上的代码来验证每个请求的请求标头中的承载令牌。
尝试这个:
[Route("api/[controller]")]
[Authorize]
public class AutorizedController: Controller
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityCore<IdentityUser>()
.AddEntityFrameworkStores<StoreContext>();
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(cfg =>
{
cfg.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true,
ValidIssuer = _config["Security:Tokens:Issuer"],
ValidateAudience = true,
ValidAudience = _config["Security:Tokens:Audience"],
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Security:Tokens:Key"])),
};
});
services.AddDbContext<StoreContext>();
services.AddMvc();
}