在 laravel 混响项目中推送器 send_event 无需身份验证即可通过

问题描述 投票:0回答:1

我正在开发这个项目,简而言之,它有一个用 laravel reverb 实现的实时聊天系统。 Laravel 服务器上调度事件的所有内容都工作正常,并且客户端可以通过 echo 正确接收事件。

问题是当我尝试通过 websocket 连接在前端处理发送消息时。我正在关注 joe dixon 在 laracon 欧盟会议link 中所做的事情。我在前端使用这个脚本。

Echo.connector.pusher.send_event(
    'SendMessage',
    JSON.stringify({ testKey: 'test value' }),
    'Users.2.ChatList'
);

现在,即使此 Users.{id}.ChatList 是在channels.php 中定义的私有通道,并且用户未经过身份验证或连接到任何通道,该事件仍会在后端作为该通道上的事件接收。没有授权发生!! 这就是我在 AppServiceProvider 的后端接收这些前端事件的方式:

Event::listen(
   MessageReceived::class,
   TestListener::class
);

有什么想法应该如何处理吗?我希望只有经过身份验证并连接到该通道(例如“Users.2.ChatList”通道)的用户才能发送此类消息。

laravel echo real-time pusher laravel-reverb
1个回答
0
投票

您找到解决方案了吗?我的项目也遇到同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.