Laravel 如何定位http://localhost:8000/broadcasting/auth 419(未知状态)发送事件到推进器时
我正在创建一个聊天应用程序和拉威尔和普什,需要帮助广播事件从和到普什端点 经过数小时的搜索和尝试,我在网上看到的解决方案是将csrf令牌添加到我的标题中,因为laravel在每篇帖子上都需要这个。我已经尝试在html中将csrf_标记添加到我的head标记中,以删除错误,但仍然获得POST 419(未知状态)。此外,我还要确保正确添加了API凭据。所有这些我都做了,但仍然没有得到。另外,我还有一个私有通道,我已经在channels.php中通过使其返回true进行了身份验证 这是我的app.jsLaravel 如何定位http://localhost:8000/broadcasting/auth 419(未知状态)发送事件到推进器时,laravel,vue.js,pusher,Laravel,Vue.js,Pusher,我正在创建一个聊天应用程序和拉威尔和普什,需要帮助广播事件从和到普什端点 经过数小时的搜索和尝试,我在网上看到的解决方案是将csrf令牌添加到我的标题中,因为laravel在每篇帖子上都需要这个。我已经尝试在html中将csrf_标记添加到我的head标记中,以删除错误,但仍然获得POST 419(未知状态)。此外,我还要确保正确添加了API凭据。所有这些我都做了,但仍然没有得到。另外,我还有一个私有通道,我已经在channels.php中通过使其返回true进行了身份验证 这是我的app.js
const app = new Vue({
el: '#app',
data: {
message: '',
chat: {
message:[],
user:[],
color:[],
"_token": "{{ csrf-token() }}"
},
},
methods: {
send(){
if (this.message.length != 0){
this.chat.message.push(this.message);
this.chat.user.push("You");
this.chat.color.push("success");
axios.post('/send', {
message : this.message,
})
.then(response => {
console.log(response);
this.message = '';
})
.catch(error => {
console.log(error);
});
}
}
},
mounted() {
Echo.private('private-chat')
.listen('ChatEvent', (e) => {
this.chat.message.push(e.message);
this.chat.user.push(e.user);
this.chat.color.push("warning");
console.log(e);
});
}
如果出于安全目的发送请求时未使用csrf令牌,则会发生此错误,因此需要通过将此标记添加到HTML的头部将其添加到请求中
<meta name="csrf-token" content="{{ csrf_token() }}">
如果出于安全目的发送请求时未使用csrf令牌,则会发生此错误,因此您需要通过将此标记添加到HTML标题将其添加到请求中
<meta name="csrf-token" content="{{ csrf_token() }}">
哪些中间件正在websockets路线上运行?它只能是auth:api
而不是web
等。最简单的配置方法是在routes/api.php
文件中设置路由,并将客户端指向app.dev/api/websockets
端点。谢谢@stokoe0990。这就是我在api.php中的内容。请你多给我指点指点好吗<代码>路由::中间件('auth:api')->get('/user',函数(Request$Request){return$Request->user();})代码>你有没有让WebSocket正常工作?在控制台的客户端页面中,您是否得到连接ws://localhost:6001或类似内容失败的消息?否。。它正在成功连接到WebSocket。我可以从pusher调试控制台看到连接。那么它连接的是在websockets路线上运行的哪些中间件?它只能是auth:api
而不是web
等。最简单的配置方法是在routes/api.php
文件中设置路由,并将客户端指向app.dev/api/websockets
端点。谢谢@stokoe0990。这就是我在api.php中的内容。请你多给我指点指点好吗<代码>路由::中间件('auth:api')->get('/user',函数(Request$Request){return$Request->user();})代码>你有没有让WebSocket正常工作?在控制台的客户端页面中,您是否得到连接ws://localhost:6001或类似内容失败的消息?否。。它正在成功连接到WebSocket。我可以从pusher调试控制台看到连接。所以它是连接银行的。我已经这样做了,但是仍然得到了同样的错误。请给你的答案添加一些解释,以便其他人可以从中学习。@NicoHaase现在更好了吗?!!我想将我的解决方案评为againIt更好——但据我所见,令牌已经添加到\u data
对象中。将其添加为meta
标记如何改变任何事情?Vue是否自动拾取该标记?应将其写入csrf标记
而不是\u标记
谢谢。我已经这样做了,但是仍然得到了同样的错误。请给你的答案添加一些解释,以便其他人可以从中学习。@NicoHaase现在更好了吗?!!我想将我的解决方案评为againIt更好——但据我所见,令牌已经添加到\u data
对象中。将其添加为meta
标记如何改变任何事情?Vue是否自动拾取该标记?应写入csrf标记
而不是\u标记