Так случилось, что недавно переносил старенькую браузерную игрушку, долбящую ajax запросами сервер, на laravel + socket.io, точнее laravel-echo-server, что примерно одно и то же.
Так вот, база юзеров там своя, пароли лежат в md5() с секретным ключем и проще было быстро написать свой middleware проверки авторизации чем переписать ларавельную систему аутентификации.
Проблема была вот в чем, надо подписать авторизованного юзера на приватный канал, например "game.private.100.5", где 100 - id игры, 5 - id юзера , откуда он получит приватные сообщения, но на том конце надо убедиться что подписан именно тот юзер, то есть авторизовать его.
Решение:
1) Добавляем в таблицу юзеров varchar поле (индекс) для хранения токена csrf и пишем его туда в момент логина
2) В метод boot() в AuthServiceProvider.php добавляем
3) В routes/channels.php
4) Клиент laravel-echo сам из коробки шлет заголовок x-csrf-token, поэтому тут ничего донастраивать не надо. Просто подписаться на канал .
Вроде все просто, но пришлось убить кучу времени чтобы к этому придти, может кому-то поможет...