无法在我的聊天应用程序中验证用户身份。我从控制台收到 403 错误。虽然当我使用私人频道时会发生这种情况,但是当使用公共频道时,这工作得很好,但我肯定只需要经过身份验证的用户。 它更像是一个水疗中心,因此几乎所有事情都使用 axios,包括对 laravel 的用户身份验证请求。 下面是我的代码:
广播服务提供商:
` public function boot()
{
Broadcast::routes();
require base_path('routes/channels.php');
}`
频道.php:
`Broadcast::channel('App.User.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});
Broadcast::channel('chat', function ($user) {
return Auth::check();
});
`
听来自 vue 组件的指令:
`Echo.private('chat')
.listen('.App\\Events\\Chats\\MessageSent', (e) => {
console.log(e);
this.sentMessages.push({
message: e.message.message,
user: e.user
});
`
消息发送事件:
` public function broadcastOn()
{
return new PrivateChannel('chat');
}
`
现在使用 vue-echo 包装器,但我仍然遇到这个问题,我仍然没有弄清楚我错过了什么
基本上正如错误所暗示的那样,这是一个身份验证问题,我在我的应用程序中使用令牌进行身份验证,但现在还需要将此令牌传递给用户以及 vue-echo。
并且还改变:
Broadcast::routes();
到
Broadcast::routes(['middleware' => ['auth:api']]);
由于我创建了一个单页面应用程序,因此使用 axios 进行身份验证,因此使用 api 中间件向我解释。
以 Alex 对“Laravel /broadcasting/auth Always Fails With 403 Error”问题提供的答案为指导 ' 您可以在那里获得更多详细信息。
谢谢大家。
你能解决这个错误吗?