You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel使用Pusher私有频道推送时localhost认证失败开发服务器正常

问题根因

/broadcasting/auth 404错误核心是localhost对应的站点未正确开启Laravel广播路由,加上现有代码存在事件广播频道与监听频道不匹配、事件构造函数赋值错误的问题,Laravel自带的php artisan serve开发服务器默认配置隐式兼容了部分配置,所以127.0.0.1:8000访问时没有报错。

修复步骤

1. 开启广播服务提供者

打开config/app.php,找到providers配置数组,取消如下条目注释:

App\Providers\BroadcastServiceProvider::class,

手动开启后才会注册广播相关路由,解决Nginx/Apache部署的localhost站点路由404问题。

2. 修复代码逻辑错误

修正事件构造函数赋值逻辑

原Events/ReportNotification的构造函数写反了赋值方向,修改为:

public function __construct($message)
{
    $this->message = $message;
}

统一广播频道与监听频道

原事件的广播频道为notification,但前端监听、频道配置都是按用户私有频道App.Models.User.{id}实现的,修改事件的broadcastOn方法:

public function broadcastOn($notifiable)
{
    return new PrivateChannel('App.Models.User.'.$notifiable->id);
}

3. 适配站点路径配置

如果localhost站点未直接指向Laravel项目的public目录,而是部署在子目录下,需要在Echo配置处手动指定认证地址:

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: import.meta.env.VITE_PUSHER_APP_KEY,
    cluster: import.meta.env.VITE_PUSHER_APP_CLUSTER,
    forceTLS: true,
    authEndpoint: 'http://localhost/broadcasting/auth'
});

4. 清空配置缓存

执行命令清理旧缓存:

php artisan config:clear
php artisan route:clear

修复完成后重新访问localhost即可正常接收通知。

内容的提问来源于stack exchange,提问作者Mrh Bappy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:27:04