【发布时间】:2015-12-08 22:19:56
【问题描述】:
我正在设置一个 socket.io 服务器来处理套接字请求。它在端口 1234 上运行。它与 laravel 5.1 应用程序一起运行。 Laravel 使用 redis 来处理会话。
我有很多关于将 laravel 与 socket.io 连接起来的教程,这一切都很简单。我可以连接、响应并将消息转发回套接字和 laravel 应用程序。
但是,每个教程都避免了此设置的身份验证部分。在 socket:1234 空间内收到消息后,如何在确保请求已通过身份验证的同时将该消息转发到 laravel。
理想情况下,我会简单地共享会话,并验证 XSRF 令牌。因为这两个应用程序在不同的端口上,所以我无法直接接听会话。
目前我正在使用另一种方法,它涉及以下内容:
- 在套接字连接时(在节点中),我使用节点的 Crypto 库和节点的 PHPUnserialise 库解密连接时发送的 cookie。
- 这给了我 laravel 会话 ID(来自 cookie)
- 我用它来访问 redis laravel 会话
- 然后我解密该会话,这反过来又使我能够访问用户 ID
它有效,但我觉得它可能是一个安全漏洞,因为我实际上并没有使用 _token 来验证来源。
【问题讨论】:
-
您是否尝试使用 3-rd 方软件解决问题?以 MQ 为例。看起来它满足您的所有需求。
标签: php laravel laravel-5.1