Error: There was an error with the transport
0 条评论原因:你的SignalR配置了权限 [Authorize] 特性
[Authorize]
public class MessageHub : Hub<IMessageClient>
{}
解决
builder.Services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(x =>
{
//...
//上面是你其他代码,下面的代码需要你加入
x.Events = new JwtBearerEvents
{
OnMessageReceived = context =>
{
var accessToken = context.Request.Query["access_token"];
var path = context.HttpContext.Request.Path;
if (!string.IsNullOrEmpty(accessToken) && path.StartsWithSegments("/messagehub"))
{
context.Token = accessToken;
}
return Task.CompletedTask;
}
};
});