首页 > 解决方案 > Laravel echo:频道授权

问题描述

来自广播文档

Broadcast::channel('order.{orderId}', function ($user, $orderId) {
    return $user->id === Order::findOrNew($orderId)->user_id;
});

所有授权回调都接收当前经过身份验证的用户作为其第一个参数,并将任何其他通配符参数作为其后续参数。在此示例中,我们使用{orderId}占位符来指示频道名称的“ID”部分是通配符。

这句话All authorization callbacks receive the currently authenticated user as their first argument适用于网络广播,如果我们为移动应用程序构建广播并且来自移动应用程序的用户想要订阅频道怎么办?那么这将user不再存在。

我们如何授权来自移动应用程序的用户?

标签: laravellaravel-echo

解决方案


找到了。服务器和客户端使用的协议必须相同。尽管 Laravel Echo 使用 Socket.io,但在 android 应用程序上安装 Socket.io 是行不通的。我必须在 android 上安装LaravelEchoAndroid包并使用 Bearer 令牌作为身份验证。

提示:这个包有一个编译错误,通过改变 maven 它将工作。


推荐阅读