在 Startup 类中添加如下代码,手动指定 callbackUrl。
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddAuthentication(options =>
{
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.Authority = Configuration["Authentication:Authority"];
options.Audience = Configuration["Authentication:Audience"];
options.RequireHttpsMetadata = false;
options.SaveToken = true;
options.Events = new JwtBearerEvents
{
OnMessageReceived = context =>
{
if (context.Request.Path.StartsWithSegments("/chat"))
{
var accessToken = context.Request.Query["access_token"];
var path = context.HttpContext.Request.Path;
var query = context.HttpContext.Request.QueryString;
context.Token = accessToken;
context.Request.Path = "/chat";
context.Request.QueryString = new QueryString("?username=" + context.User.Identity.Name);
}
return Task.CompletedTask;
}
};
});
// ...
}