【问题标题】:Laravel echo: channel authorizationLaravel echo:频道授权
【发布时间】:2020-05-06 07:44:57
【问题描述】:

来自Broadcasting documentation

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 将不再存在。

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

【问题讨论】:

  • 如果要求用户进行身份验证,则 Web 或移动设备或 API 之间没有区别。
  • @AliAli 那么$user 参数是什么?没有可用的会话

标签: laravel laravel-echo


【解决方案1】:

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

提示:此包存在编译错误,通过更改 maven 即可工作。

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 2021-10-17
    • 2020-12-21
    • 2020-07-23
    • 2019-07-03
    • 2020-01-15
    • 1970-01-01
    • 2019-02-08
    • 2020-11-22
    相关资源
    最近更新 更多