首页 > 解决方案 > Laravel 广播/WebSockets:仅连接已登录的用户

问题描述

我设置了Laravel WebSockets。我的站点只为登录的用户提供实时/WebSockets 功能。因此也不需要将访客连接到我的 WebSockets 服务器。如何阻止访客连接?

标签: laravelwebsocketbroadcasting

解决方案


我建议你使用 SocketIO、Laravel Echo 和 Laravel Echo Server。

获取用户访问令牌,将其存储在 cookie 或 Web 存储(localStorage 或 sessionStorage)中,并在实例化 Laravel 回显时注入它:

let Echo = require('laravel-echo')

window.Echo = new Echo({
        broadcaster: 'socket.io',
        host: window.location.hostname + ':3434'
        auth: {
            headers: {
                 Authorization: 'Bearer ' + AUTH_TOKEN,
            },
        },
    });

以下是满足您需求的链接:

https://laravel.com/docs/5.8/broadcasting#driver-prerequisites https://github.com/tlaverdure/laravel-echo-server


推荐阅读