Я работаю над приложением Laravel, которое имеет интерфейс React. У меня есть настройки уведомлений с использованием толкателя, который все работает нормально.
Я пытаюсь использовать сквозное шифрование, как описано здесь https://pusher.com/docs/channels/using_channels/encrypted-channels
В моей конфигурации / трансляции. php У меня есть следующее
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'useTLS' => true,
'encryption_master_key' => env('PUSHER_ENCRYPTION_KEY'),
],
]
В моем .env
PUSHER_ENCRYPTION_KEY
установлено, и я вижу уведомления, поступающие через консоль отладки Pusher, зашифрованные, как и следовало ожидать.
В моем интерфейсе я создаю экземпляр Pusher следующим образом
const socket = new Pusher(process.env.MIX_PUSHER_APP_KEY, {
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
authEndpoint: '/api/broadcasting/auth'
});
socket.subscribe('private-encrypted-user.' + props.user.id);
socket.bind('App\\Events\\TaskCreated' , function (data) {
console.log(data)
});
Я вижу на вкладке своей сети /api/broadcasting/auth
отвечает дополнительным полем, которое теперь называется shared_secret
. Согласно документам это используется для расшифровки входящего уведомления, и дешифрование должно быть автоматическим c. Когда я запускаю, запускается App\\Events\\TaskCreated
console.log(data)
, но данные все еще зашифрованы.
В документах также указано if a client is unable to decrypt a message, it will make another request to your auth endpoint to obtain a new decryption key. If the client is still unable to decrypt the message with the new key, it will throw an error.
, но никаких ошибок не выдается, и к /api/broadcasting/auth
не отправляются дальнейшие запросы.
Я включил Pusher.logToConsole = true;
, и все выглядит хорошо. Я даже получаю "pusher_internal:subscription_succeeded","channel":"private-encrypted-user.2"
, что наводит меня на мысль, что аутентичная сторона работает должным образом.
Кто-нибудь может увидеть, что мне не хватает?