/broadcasting/auth 端点在尝试向 Sanctum 进行身份验证时始终失败并显示 403(拒绝访问)错误



我找不到太多关于使用 Sanctum 专门验证广播的答案。我正在尝试实现一个广播到推送器的基本事件,但是在尝试连接到/broadcasting/auth时不断收到403错误。首先,是的,我已经取消了/config/app.php广播服务提供商的评论。以下是我的广播服务提供商的摘录:

app/Providers/BroadcastServiceProvider.php

class BroadcastServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Broadcast::routes(['middleware' => ['auth:sanctum']]);
require base_path('routes/channels.php');
}
}

我使用 Sanctum 进行身份验证,我的所有端点都存在于 api.php 文件中。我不确定我是否应该在那里声明Broadcast::routes,因为我看到有些人暗示它,但我真的不知道它有什么区别,因为它仍然给我同样的错误。我什至不知道调用中间件在这里是否有效auth:sanctum。我的意思是,我知道它适用于我的所有 api 路由,但我不确定此提供程序文件中。

我正在尝试使用 Postman 访问/broadcasting/auth端点,同时在请求中包含我的 Sanctum 授权标头(持有者 [令牌](,但它只给了我一个403

有人可以在这里指出我正确的方向吗?

我也遇到了类似的问题,但我能够通过在路由目录中的频道.php文件中添加我正在广播的频道来解决它。

频道.php

Broadcast::channel('request_channel.{device_id}', function ($user, $device_id) {
return (int) $user->id === (int) AppUserDevice::find($device_id)->user_id;
});

相关内容

最新更新