当前位置: 首页 > 知识库问答 >
问题:

无法对Laravel Echo服务器进行身份验证,已获得HTTP状态500

伏欣悦
2023-03-14

我已经安装了Laravel回声服务器和Laravel回声客户端。

以下是laravel echo服务器。json配置。

{
"authHost": "http://taxation.com",
"authEndpoint": "/broadcasting/auth",
"clients": [
    {
        "appId": "APP_ID",
        "key": "someKey"
    }
],
"database": "redis",
"databaseConfig": {
    "redis": {},
    "sqlite": {
        "databasePath": "/database/laravel-echo-server.sqlite"
    }
},
"devMode": true,
"host": "127.0.0.1",
"port": "3000",
"protocol": "http",
"socketio": {},
"sslCertPath": "",
"sslKeyPath": "",
"sslCertChainPath": "",
"sslPassphrase": ""
}

以下脚本侦听通道事件。它可以通过npm运行dev很好地构建。

import Echo from 'laravel-echo'
let token = document.head.querySelector('meta[name="token"]');
if (token) {
    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
    console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: '127.0.0.1:3000',
    reconnectionAttempts: 5
});


window.Echo.join('checked-in-1')
            .listen('.user.checked_in', (e) => {
            console.log(e);
        });

尝试侦听启动laravel echo server命令上的任何事件时。它不断抛出客户端无法进行身份验证,获得HTTP状态500

注:

我在laravel echo服务和谷歌上都没有发现任何有用的东西。

任何帮助将不胜感激。

拉威尔V5。4.

谢谢

共有1个答案

井兴怀
2023-03-14

只是因为CSRF令牌而出现问题。没有把令牌传给回声。

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: '127.0.0.1:3000',
    reconnectionAttempts: 5,
    csrfToken: token.content <--
});
 类似资料:
  • 我能够使用HTTPS设置在本地环境上运行laravel echo服务器。但是,我的生产服务器(基于Forge)似乎存在一个问题: 我能够通过HTTPS在本地测试私有通道,它工作得很好,所以看起来不存在配置问题。 我应该提到的是,我使用的是LaravelPassport,导致此错误的请求被抛出到常规身份验证中间件之外的页面上。 为了确保它不是我的身份验证方法,我让它在我的通道配置中返回“true”:

  • 我正在建一个水疗中心。我使用laravel作为后端,vuejs作为前端。它们在不同的端口上独立运行。(使用laravel api) Laravel在8000上运行 Vue在8082上运行 我允许用户使用JWT Auth进行身份验证。 我正在尝试使用laravel echo服务器制作一个实时数据传输应用程序,并使用公共通道传输数据,效果非常好。 现在,我需要使用私有通道将数据广播给经过身份验证的用户

  • 我使用获得了和应用程序,我正在尝试通过套接字将前端连接到后端。 我已经通过方法,但它不会订阅 到目前为止,我得到的是: 页面加载后,我调用: 我通过 }); 然后我通过

  • 我通过运行以下代码得到下面的错误。 错误:decipheriv.final(node:internal/crypto/cipher:196:29)在decrypt(/users/username/dev/playground/node/src/index.ts:14:65)处处于不支持状态或无法对数据进行身份验证 节点中aes-128-gcm的“不支持状态或无法验证数据” 在nodejs解密中获取

  • 我试图实现jwt在cookie中的auth在一个单页应用程序的反应前端,它与运行Express的各种节点微服务通信。 我这样做,因为它似乎存储的jwt在sesionstore使应用程序容易受到XSS。 然而,通过使用cookie,API现在容易受到csrf攻击。 传统上,csrf攻击是通过创建csrf令牌,将其存储在服务器会话中,然后将其呈现在隐藏的表单字段中来减轻的。然后,在提交表单时,csrf