使用laravel广播使用私人频道时出现403错误

时间:2019-01-17 05:50:35

标签: laravel vue.js pusher laravel-echo

无法在我的聊天应用程序中对用户进行身份验证。我从控制台收到403错误。虽然发生这种情况,但是当我使用私人频道时,但是当使用公共频道时,这确实可以正常工作,但我绝对只希望通过身份验证的用户。 它更像是温泉,因此几乎所有东西都使用axios,包括对laravel的用户身份验证请求。 下面是我的代码:

BroadcastServiceProvider:

`'Access-Control-Allow-Origin':'*',`

Channels.php:

` public function boot()
{
    Broadcast::routes();

    require base_path('routes/channels.php');
}`

从vue组件监听指令:

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

Broadcast::channel('chat', function ($user) {
    return Auth::check();
});
`

MessageSent事件:

`Echo.private('chat')
            .listen('.App\\Events\\Chats\\MessageSent', (e) => {
                console.log(e);
                this.sentMessages.push({
                    message: e.message.message,
                    user: e.user
                });
`

现在使用vue-echo包装器,但是我仍然遇到这个问题,我仍然没有弄清楚我所缺少的东西

1 个答案:

答案 0 :(得分:0)

这基本上就是错误所提示的身份验证问题,我正在使用令牌在我的应用程序中进行身份验证,但现在还需要将此发行给用户的令牌也传递给vue-echo。

还要更改:

Broadcast::routes();

Broadcast::routes(['middleware' => ['auth:api']]);

由于正在创建一个单页应用程序,因此使用axios进行身份验证,因此使用api中间件向我解释。

Alex on the question 'Laravel /broadcasting/auth Always Fails With 403 Error '提供的答案指导 您可以在那里获得更多详细信息。

谢谢。