Как правильно функцию на клиенте через SignalR за учётом авторизации?

Конечно, я с удовольствием помогу разобраться. Для того чтобы вызвать функцию с использованием SignalR на клиентской стороне с учётом авторизации, необходимо выполнить несколько шагов.

1. Определите и настройте хаб SignalR на сервере. Например:

public class MyHub : Hub
{
    public void SendMessage(string message)
    {
        Clients.All.SendAsync("ReceiveMessage", message);
    }
}

2. Включите механизм аутентификации и авторизации SignalR на сервере. Это может быть реализовано с использованием ASP.NET Identity или других способов.

3. Настройте клиентскую сторону для выполнения аутентификации перед установкой соединения с хабом SignalR. Например, с помощью JWT-токенов:

connection.On("ReceiveMessage", (message) =>
{
    console.log(message);
});

const token = 'your_jwt_token_here';
const connection = new signalR.HubConnectionBuilder()
    .withUrl("/myhub", { accessTokenFactory: () => token })
    .build();
connection.start();

4. Вызовите функцию на хабе SignalR с учетом авторизации на клиенте:

connection.invoke("SendMessage", "Hello, SignalR!");

Пожалуйста, обратите внимание, что приведенный выше код предназначен для демонстрации и может потребовать дополнительной настройки в зависимости от конкретных условий вашего проекта. Не забудьте также обработать возможные ошибки и исключения при работе с SignalR.