При подключении к SignalR HUB получаю ошибку 401
Пишу клиентское приложение на WPF. При подключении к хабу выдаёт ошибку авторизации, хоть при этом я и передаю токен при его создании.
Код конфигурации сервисов в Startup
services.AddAuthentication(auth =>
{
auth.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
auth.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
auth.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
var jwt = new AuthOptions(Configuration);
options.SaveToken = true;
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidIssuer = jwt.ISSUER,
ValidateIssuer = true,
ValidAudience = jwt.AUDIENCE,
ValidateAudience = true,
RequireExpirationTime = true,
IssuerSigningKey = jwt.GetSymmetricSecurityKey(),
ValidateIssuerSigningKey = true
};
options.Events = new JwtBearerEvents
{
OnMessageReceived = context =>
{
var accessToken = context.Request.Query["access_token"];
var path = context.HttpContext.Request.Path;
if (!string.IsNullOrEmpty(accessToken) &&
(path.StartsWithSegments("/hubs/chat")))
context.Token = accessToken;
return Task.CompletedTask;
}
};
});
Код конфигурации приложения
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseStaticFiles();
app.UseAuthorization();
app.UseAuthentication();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
endpoints.MapHub<ChatHub>("/hubs/chat");
});
Код хаба
[Authorize]
public class ChatHub : Hub
{
byte[] file;
public async Task Send(string message, byte[] file)
{
this.file = file;
var username = Context.User.Identity.Name;
await Clients.All.SendAsync("Receive", username, message);
}
public override async Task OnConnectedAsync()
{
await Clients.All.SendAsync("Notify", $"Подключён {Context.UserIdentifier}");
}
}
Вот данные, которые принимает и получает сервер после захода в OnMessageReceived
![var accessToken = context.Request.Query["access_token"];](https://i.stack.imgur.com/2xXsv.png)
