如何隐藏使用laravel + pusher的私人频道所禁止的错误403?
我的页面上有可以接收消息的用户,而其他用户则无法接收消息-例如,可以通过channel.php条件进行检查
Broadcast::channel('post.{id}', function ($user, $id) {
return *my expresion*;
});
如果返回false,那么我有错误:
POST http://realtime/broadcasting/auth 403 (Forbidden)
我不希望别人看到它。
我尝试制作中间件 auth:api ,但是它不起作用。而且由于这种中间件,它甚至不起作用
// routes/channels.php
Broadcast::channel('post.{id}', function ($user, $id) {
return (int) $user->id === (int) \App\Post::find($id)->user_id;
});
// App\Providers\BroadcastServiceProvider.php
public function boot()
{
Broadcast::routes();
require base_path('routes/channels.php');
}
在events文件夹中,我具有实现ShouldBroadcast的NewComment事件,并具有broadcastWith和broadcastOn:
public function broadcastOn()
{
return new PrivateChannel('post.' . $this->comment->post->id);
}
并且我使用 vue.js :
var channel = Echo.private('post.' + this.post.id);
channel.listen('NewComment', (comment) => {
console.log(comment);
});
我希望任何用户访问该页面都看不到该错误。但只有特定的频道可以使用。现在可以使用了,但是不能使用频道的用户被禁止了错误403