【问题标题】:Pusher Auth value for subscription to private-channel has invalid format 'key:signature' (Laravel)订阅私人频道的推送器身份验证值具有无效格式“密钥:签名”(Laravel)
【发布时间】:2020-03-14 08:50:03
【问题描述】:

Pusher 工作了,但停止了。 .env 设置是 100% 正确的。请告诉我如何调试这个?另外,我尝试制作新的 Puser 应用程序

Pusher : State changed : connecting -> connected with new socket ID 126791.4368004
pusher.min.js:8 Pusher : Event sent : {"event":"pusher:subscribe","data":{"auth":":88536630b30af895eb4ac1fcab4af7fcac1fbce3883074b00aa47cfc873c9362","channel":"private-user.1971"}}
pusher.min.js:8 Pusher : Event recd : {"event":"pusher:error","data":{"code":null,"message":"Auth value for subscription to private-user.1971 is invalid: should be of format 'key:signature'"}}
pusher.min.js:8 Pusher : Error : {"type":"WebSocketError","error":{"type":"PusherError","data":{"code":null,"message":"Auth value for subscription to private-user.1971 is invalid: should be of format 'key:signature'"}}}
PUSHER_APP_ID=902144
PUSHER_APP_KEY=0dd4fc93384fc94b5d6b
PUSHER_APP_SECRET=*****************
var pusher = new Pusher('0dd4fc93384fc94b5d6b', {
    cluster: 'eu',
    forceTLS: true,
    auth: {
        headers: {
             'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
        }
    }
});
class PusherController extends Controller
{
    public $pusher;

    public function __construct ()
    {
        $this->middleware('auth');
        $this->pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID'));
    }

    public function auth(Request $request)
    {
        if (Auth::check()) {
            return $this->pusher->socket_auth($request->get('channel_name'), $request->get('socket_id'));
        } else {
            return Response::make('Forbidden', 403);
        }
    }
}

广播.php:

'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [
                'cluster' => 'eu',
                'useTLS' => true
            ],
        ],

一切正常,但在某个时候停止了。我很绝望:(

【问题讨论】:

    标签: laravel laravel-5 pusher


    【解决方案1】:

    不要在配置文件之外使用env(...)。参考您需要的文件和密钥,使用config(...)。示例:config('broadcasting.pusher.key')

    如果您缓存配置,.env 文件不会被加载,这意味着 env(...) 会为所有内容返回 null

    听起来你缓存了你的配置。你可以通过清除配置缓存来测试这个理论:

    php artisan config:clear
    

    如果它再次开始工作,那是你的问题。

    "如果你在部署过程中执行config:cache命令,你应该确保你只是从你的配置文件中调用env函数。一旦配置被缓存,.env文件将未加载,所有对 env 函数的调用都将返回 null。"

    Laravel 5.8 Docs - Configuration - Configuration Caching

    【讨论】:

      猜你喜欢
      • 2017-10-08
      • 2019-05-29
      • 2017-11-13
      • 1970-01-01
      • 2020-01-04
      • 1970-01-01
      • 2017-05-12
      • 2019-01-19
      • 2020-11-22
      相关资源
      最近更新 更多