Blazor jwt從客戶端到服務器

blazor jwt token

我已經在本地存儲中擁有令牌並準備發送到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();
    }


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因