我在我的Web中实现了Jwt,成功地获得了一个登录令牌。我复制/粘贴此令牌以用于授权,然后收到
error= error="invalid_token",error_description=“签名无效”
ValidIssuer是在Azure中部署的WebAPI Url
ValidAudience是角前端URL,也部署在Azure中。
我花了几个小时寻找这个问题,但我似乎没有找到解决办法。
即使把ValidateIssuer & -Audience变成假,也解决不了问题。是我错过了什么还是你看到了错误?
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
});
});
services.ConfigureIISIntegration();
services.ConfigureMsSqlContext(Configuration);
services.ConfigureRepositoryWrapper();
services.AddAuthentication(opt => {
opt.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
opt.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
opt.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.SaveToken = true;
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidIssuer = Configuration["JWT:Issuer"],
ValidAudience = Configuration["JWT:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["JWT:Secret"]))
};
});
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseDeveloperExceptionPage();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCors("CorsPolicy");
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.All
});
app.UseAuthentication();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}发布于 2021-05-05 16:03:59
解决我的问题,也许很小,但影响很大。
我忘了在请求方法的顶部添加授权-属性。
[HttpGet, Authorize]
public IActionResult GetMaterialDetails()https://stackoverflow.com/questions/67385143
复制相似问题