로컬 저장소에 이미 토큰이 있고 컨트롤러 또는 메서드가있는 웹 API로 보낼 준비가되었습니다.이 특성을 Blazor 클라이언트에 허가합니다. 어떻게 토큰을 보내나요?
var token = Storage["token"];
await http.GetJsonAsync<string[]>("/api/authorizedController");
그리고 어떻게 api에서 토큰을 사용합니까? 자동으로 발생합니까, 아니면 할 일이 있습니까?
[Authorize]
[Route("api/[controller]")]
Mate, 각 요청에 대한 요청 헤더의 무기명 토큰을 확인하기 위해 서버에 코드가 필요합니다.
이 시도:
[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();
}