Blazor jwt von Client zu Server

blazor jwt token

Frage

Ich habe bereits das Token im lokalen Speicher und bereit, an die Web-API zu senden, wo der Controller oder die Methode hat Autorisieren Attribut dies ist die Blazor Client, Wie sende ich das Token?

        var token = Storage["token"];
     await http.GetJsonAsync<string[]>("/api/authorizedController");

Und wie bekomme ich das Token auf der API? Kommt es automatisch vor oder muss ich etwas tun?

    [Authorize]
[Route("api/[controller]")]

Beliebte Antwort

Mate, Sie benötigen auch Code auf dem Server, um das Bearer-Token in Ihrem Anfrage-Header bei jeder Anfrage zu validieren.

Versuche dies:

[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();
    }


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow