Ошибка подключения к каналам сокетов при запуске эхо-сервера через поддомен

Многие компании или рабочие места имеют протоколы безопасности, в которых открыты только общие порты, например 80 (HTTP), 443 (HTTPS). Если бы наше веб-приложение попробовало подключиться к порту 6001 (по умолчанию laravel-echo-server), некоторые из ваших пользователей определенно столкнутся с проблемами при закрытии порта ... Источник

После создания поддомена в nginx я запустил через него сокеты, и все заработало, вот только теперь я не могу подключиться ни к какому каналу. Client can not be authenticated, got HTTP status 419 "message": "Несоответствие токена CSRF.",

Экспериментально отключена защита csrf, и ошибка изменена на Client can not be authenticated, got HTTP status 403 "message": "",

app.js

/**
 * Port configured on proxy server (default: 6001).
 * The default port for HTTPS protocol is 443.
 *
 * @type {string}
 */
const ECHO_DOMAIN = process.env.NODE_ENV === 'production'
    ? 'ws.site.com'
    : 'wsdev.site.com';

window.io = require('socket.io-client');

if (typeof io !== 'undefined') {
    window.Echo = new Echo({
        broadcaster: 'socket.io',
        host: `https://${ECHO_DOMAIN}`,
        reconnectionAttempts: 120
    });
...

успешное соединение  введите описание изображения здесь

Как это исправить?


person Ilya Degtyarenko    schedule 21.10.2019    source источник


Ответы (1)


Проблема решена путем добавления переменной SESSION_DOMAIN = .site.com в .env, которая изменяет значение в 'domain' в config / session.php

Затем вам нужно очистить файлы cookie в браузере и кеш на сервере. Вам также может потребоваться выполнить дамп-автозагрузку композитора. Основной источник

person Ilya Degtyarenko    schedule 21.10.2019