首页 > 解决方案 > Laravel 广播认证被禁止

问题描述

我正在使用 Laravel 构建消息传递系统,这就是我使用事件广播的原因,我也使用护照进行身份验证。

我通过设置中间件 auth:api 更改了BroadcastServiceProvider boot()方法我还在我的邮递员发布请求中添加了 Authorization : Bearer mytoken 。

public function boot()
{
    Broadcast::routes(['middleware' => ['auth:api']]);
    require base_path('routes/channels.php');
} 

我的问题是当我想尝试进行身份验证时,myhost//broadcasting/auth我得到了这个响应:

403 禁止

标签: phplaravellaravel-5postmanbroadcasting

解决方案


除了它似乎在 Postman 中不起作用之外,这并不是一个真正的答案。无论我如何配置请求,它仍然返回 403。但是使用 Laravel 引导 JS 甚至是带有 Echo 或 Pusher-js 的外部文件,它都可以工作。

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    cluster: process.env.MIX_PUSHER_APP_CLUSTER,
    encrypted: true,
    auth: {
        headers: {
            'Authorization': 'Bearer ' + jwt
        },
    },
});

推荐阅读