Laravel echo: авторизация канала - PullRequest
0 голосов
/ 06 мая 2020

Из документации Broadcasting

Broadcast::channel('order.{orderId}', function ($user, $orderId) {
    return $user->id === Order::findOrNew($orderId)->user_id;
});

Все обратные вызовы авторизации получают аутентифицированного в данный момент пользователя в качестве своего первого аргумента и любых дополнительных параметров подстановочных знаков в качестве своих последующих аргументов. В этом примере мы используем заполнитель {orderId}, чтобы указать, что часть «ID» имени канала является подстановочным знаком.

Предложение All authorization callbacks receive the currently authenticated user as their first argument верно для вещания в Интернете, что если мы строим трансляцию для мобильного приложения, а пользователь из мобильного приложения хочет подписаться на канал? Тогда этого user больше не будет.

Как мы можем авторизовать пользователей, приходящих из мобильного приложения?

1 Ответ

0 голосов
/ 08 мая 2020

Нашел. Протокол, используемый на сервере и на клиенте, должен быть одинаковым. Несмотря на то, что Laravel Echo использует Socket.io, установка Socket.io в приложение android не работает. Мне нужно установить пакет LaravelEcho Android на android и использовать токен-носитель в качестве аутентификации.

Подсказка: в этом пакете есть ошибка компиляции, и при изменении maven он будет работать.

...