Laravel Echo + VueJS трансляция / проблема с аутентификацией - PullRequest
0 голосов
/ 11 ноября 2019

Я использую Laravel Echo и pusher в качестве моего сервера. Он уже работает на общедоступных каналах.

Вот фотография моего слушателя эха laravel ссылка на изображение

Теперь моя проблема в том, когда я использую PrivateChannel и когда я слушаю вВ частном канале эта ошибка выскакивает:

POST http://localhost:3000/broadcasting/auth 500 (Внутренняя ошибка сервера)

Внутри ошибки на вкладке консоли / сети указано, что Route [login] не определено.

Вот изображение внутри консоли / сети https://i.stack.imgur.com/fnAGp.png

То, что я сделал:

-комментированное приложение \ Providers \ BroadcastServiceProvider :: class inconfig / app.php

-Added Broadcast :: routs (['middleware' => ['auth: api']]);в BroadcastServiceProvider.php

-Используется Echo.private ('channel-name') вместо Echo.channel ('channel-name') для прослушивания частных каналов

-Добавлено authEndpoint: 'http://localhost:3000/broadcasting/auth' в bootstrap.js (это где мои параметры эха)

-Добавлен канал (возможно, частный канал) в мои channel.php ( вот фото * 1032)*)

-Добавлен метатег csrf-токена в моем главном блейде

На сервере-отправителе он получает событие при его запуске, вот картинка событияуспешно сработал.

Так что проблема в том, что когда я слушаю частный канал, выскакивает ошибка, но все в порядке, когда я слушаю публичный канал, и я не совсем уверен, как оценить эту проблему.

1 Ответ

0 голосов
/ 11 ноября 2019

Вы должны передать заголовок аутентификации с запросом толкателя, как показано ниже.

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'APP_KEY',
    authEndpoint: '/broadcasting/auth'
    auth: {
        headers: {
            'Authorization': 'Bearer your_api_Toke',
            'X-CSRF-Token': "CSRF_TOKEN"
         }
      }
    });

Для более подробной информации:

https://github.com/laravel/echo/issues/26
Laravel Echo не использует AuthЗаголовки

...