如何解决channel vs channel_name - 私有频道的 Laravel Echo 和 Laravel 变量名
我在 NuxtJs、Redis 和 Laravel 8 中使用 Laravel Echo Server 时遇到了一个奇怪的事情。
NuxJs 中的 Laravel Echo 发送一条 WS 消息,如下所示:
42["subscribe",{"channel":"container-details-3","auth":{"headers":{"Authorization":"Bearer ****"}}}]
我正在使用这样的 API 身份验证:
Broadcast::routes(['middleware' => ['auth:api']]);
这是失败的,因为通过我在 Laravel 中的私人频道身份验证的请求中有一个 channel
变量,所以 $request->channel
但 Laravel 期待 $request->channel_name
从外观上看,我可能无法在 Laravel 中更改它,因为它只是硬编码,所以我的选择是:
- 在中间件中更改它(看起来很糟糕)
- 强制 Laravel echo 更改 WS 消息的负载,使其显示为
channel_name
而不是channel
之前是否有人遇到过这个问题,您认为在这里做的最好的事情是什么?或者我完全迷失在这里,只是大错特错?
当我通过 postman 使用 channel_name
变量点击 auth 端点时,所有这些都正常工作。
解决方法
如果您无法在 Laravel 中编辑变量名称,我会感到惊讶。我从未使用过这个框架,但这个答案看起来不错:https://stackoverflow.com/a/47518820/8816585
$channel->slug = str_slug($request->channel_name);
但是,是的,宁可在 Laravel 方面进行更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。