使用Socket.io Nodejs进行Laravel共享会话

时间:2017-12-16 00:17:41

标签: node.js laravel socket.io session-cookies

我的问题很简单。如何与socket.io nodejs app安全地共享laravel会话信息。我尝试了很多不同的方法,但没有一种方法可行,所以我希望专家能够完成。我已经知道我不想使用JWT令牌。所以我想这只是留下会话cookie数据本身。我无法弄清楚如何使用cookie验证socket.io,这就是我需要帮助的地方。我正在使用redis存储会话,并使用带laravel的默认身份验证系统。

我尝试过使用这个非常适合解析会话的库。但它没有使用我的socket.io服务器进行身份验证。 https://www.npmjs.com/package/node-laravel-session

如果有人知道如何解决这个问题,我将非常感谢一些帮助。

1 个答案:

答案 0 :(得分:0)

我认为,你在socket.io中遇到身份验证问题,想法是你不能轻易地从应用程序到应用程序共享会话,为什么?因为这个数据是在客户端的浏览器(cookie)和服务器(会话)之间处理的,如果你想连接Laravel和Socket.io,首先你需要做一些类似的流程:

  1. 当用户在网站上进行身份验证时,将socket.io的cookie设置为 好吧(如果主持人不同)。
  2. 在后台,你必须通过数据库(memcached,redis等)和cookie共享会话数据。如您所知,如果您将laravel会话参数设置为使用数据库而不是使用文件,laravel将自动开始将会话数据保存到DB中,因此可以轻松地从数据库中读取会话参数。
  3. 我认为你错误地使用 node-laravel-session ,我的意思是如果你在其他服务器上有node.js应用程序而你使用 getSessionFromFile ,它就不会工作。确保你正确使用它并且它能够正常工作。这样做的过程很容易,但是当你有跨项目会话时,问题主要是安全性。