【发布时间】:2021-08-28 09:12:35
【问题描述】:
我在 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 回显以更改 WS 消息的负载,因此它会显示
channel_name而不是channel
之前有没有人遇到过这个问题,您认为在这里最好的做法是什么?还是我完全迷路了,完全错了?
当我通过邮递员使用channel_name 变量访问身份验证端点时,所有这些都可以正常工作。
【问题讨论】:
标签: laravel websocket redis nuxt.js laravel-echo