laravel echo server 结合 jwt 授权

首先,因为重写了 axios 的拦截器,为了确保 socket 消息头的引入,在 axios 拦截器中中加入 if(window.Echo) { let socketId = window.Echo.socketId() if (socketId) { request.headers.common['X-Socket-Id'] = socketId } } 然后,修改BroadcastServiceprovider,修改认证路由为api模组 Broadcast::routes(["prefix" => "api", "middleware" => "api"]); 最后,在 laravel-echo-server.json 中确保认证路由的正确 { "authHost": "http://dev.test", "authEndpoint": "/api/broadcasting/auth" } 同时,在 Laravel Echo中加入token认证 import Cookies from 'js-cookie' let token = Cookies.get('token') window.Echo = new Echo({ broadcaster: 'socket.io', host: process.env.MIX_ECHO_SERVER, auth: { headers: { 'Authorization': 'Bearer ' + token } } }) 好了,我们现在可以愉快的使用 laravel 发送广播了,私有频道在 routes/channels....

五月 17, 2018