Как исправить ошибку '/ broadcasting / auth 401 (Unauthorized)' в Laravel 5.7 при использовании толкателя - PullRequest
1 голос
/ 30 апреля 2019

Я пытаюсь настроить толкатель в моем SPA. Я разработал приложение на Laravel 5.7 и Vus js и использую jwt для аутентификации.

Мой Boostrap.js выглядит так:

window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: true,
auth: {
    headers: {
        Authorization: JWTtoken
      }
    }
});

JWTtoken токен, полученный от JWT после входа в систему.

Мой BroadcastServiceProvider выглядит следующим образом:

Я раскомментировал это в config / app.php

class BroadcastServiceProvider extends ServiceProvider
{
    public function boot()
     {
       Broadcast::routes(['middleware' => 'jwt.auth']);
       require base_path('routes/channels.php');
     }
}

Мой файл Channels.php выглядит так:

Broadcast::channel('App.User.{id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
});

Я также убедился, что все приложение работает с jwt в качестве единственного метода аутентификации в

конфиг / auth.php

Мое событие под названием UserEvent Выглядит так:

class UserEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
    public $user;

    public function __construct(User $user)
    {
       $this->user = $user;
    }

    public function broadcastAs()
    {
       return 'themechanged';
    }

    public function broadcastOn()
    {
        return new PrivateChannel('App.User.'.$this->user->id);
    }
 }

Тогда в моем компоненте vue я сделал это:

 Echo.private('App.User.1')
 .notification('themechanged', (data) => {
     console.log(data)
  })

но я получаю эту ошибку в моей консоли: broadcasting/auth 401 (Unauthorized)

...