laravel - Laravel echo,推送器未在私人频道上进行身份验证
问题描述
我正在尝试在 laravel 6 上设置一个带有 echo 的私人推送通道。它不会授权用户。我能做的最好的就是从推送者那里得到以下回应
Pusher : No callbacks on private-App.User.1 for pusher:subscription_error
我遵循了文档,我已经注册:
App\Providers\BroadcastServiceProvider
添加了 csrf 令牌:
<meta name="csrf-token" content="{{ csrf_token() }}">
调整了broadcastServiceProvider中的广播路由
Broadcast::routes(["middleware" => ["auth:api"]]);
需要通道文件
require base_path('routes/channels.php');
这是频道代码,(日志甚至没有运行)
Broadcast::channel('App.User.{id}', function ($user, $id) {
Log::info('User failed to auth.');
return (int) $user->id === (int) $id;
});
这是 bootstrap.js 代码,显然使用了我的真实密钥和端点(尝试使用和不使用端点)
从“laravel-echo”导入 Echo
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'mykeyhere111',
cluster: 'eu',
authEndpoint: "https://mydomain.test/broadcasting/auth",
forceTLS: true
});
Pusher.logToConsole = true;
console.log(window.Echo.options);
和我的 Vue 监听方法:
Echo.private(`App.User.${userId}`)
.notification( (notification) => {
console.log(notification)
})
我也设置了env文件
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=akeyhere1
PUSHER_APP_KEY=akeyhere123
PUSHER_APP_SECRET=akeyhere12345
PUSHER_APP_CLUSTER=eu
我正在使用 ssl 在宅基地上工作,也尝试过 vagrant。auth 的网络响应是:
Request URL: https://mysite.test/broadcasting/auth
Request Method: POST
Status Code: 302
没有响应数据。
我花了几天的时间试图让这个工作,似乎没有做。有任何想法吗?
解决方案
推荐阅读
- html - CSS文本块不适合其父宽度:悬停
- visual-studio-code - 它是否能够在 vscode 的某个文件中导航上一个光标?
- spring-boot - Springboot2.2.2release中如何通过独立的Configuration文件配置HikariCp?
- swift - 如何将项目插入特定的列和行 UICollectionView Cell Swift 5?
- codeigniter - 如何使用 Codeigniter 取消链接文件?
- python - 绘制从整个数据生成的图像的某些部分
- php - 带有 Pusher 的 Laravel Echo 未在私人频道上接收消息
- c# - 将静态扩展分辨率限制为最窄的匹配签名
- keras - ValueError: name_scope 的名称在尝试在 TF2.0 中构建模型类时必须是字符串
- angular - 如何从组件中的服务方法获取 catchError 消息?