Как создать авторизацию для подключения к websocket серверу reverb (не к каналам, именно серверу)?
Я осваиваю частично новый для себя стек:
Laravel 12 + sanctum + breeze(api) + laravel reverb (ws server) на бэке.
На фронте nuxt 3 и pusher.js (без laravel echo), остальное перечислять избыточно.
Все подключения происходят через api по токену. Сессии не используются.
Связка работает, корректно настроена на живом сервере.
Но, мне не нужны public каналы и хотелось бы:
1. Самое важное - ограничить возможность подключения к ws серверу (reverb), сделать возможным подключение только авторизованным пользователям, например по токену для авторизации, или генерации дополнительного по запросу.
2. Отключить возможность подключения к public каналам вообще.
Зачем это нужно? множественные подключения к ws это потенциально эффективный ddos.
Все подключения происходят через api по токену. Сессии не используются.
Так проверь этот token в нужных "роутах" или через "мидлваре"...не? + Не создавай "лишних" роутов для подключения...
P.S.:
Через сессию там по "авторизации" проверки есть - "вшитые"...а по Вашему вопросу...мне кажется на уровне "контролллера" надо это решать...или чуть "выше" - "мидлвары" - слово хер выговоришь...:)
N, подключение к websocket серверу reverb происходит отдельно, это не типичный маршрут laravel. К примеру фронт находится на domain.ru, api на api.domain.ru, а вебсокет сервер проксируется с ws.domain.ru на запущенный локально reverb. Я как раз ищу способ подключить какой-либо мидлвар к этому серверу.
N, Да, я уже рассмотрел реализацию связанную с nginx, это похоже единственный адекватный метод. Однако склоняюсь к тому, что я откажусь от reverb, в сторону отдельного ws сервера на go. Уж очень много нашёл недостатков и, если верить issues в офф репозитории, даже есть некоторые актуальные уязвимости.