Laravel与Socket.io Nodejs共享会话
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel与Socket.io Nodejs共享会话相关的知识,希望对你有一定的参考价值。
我的问题很简单。如何与socket.io nodejs app安全地共享laravel会话信息。我尝试了很多不同的方法,但没有一种方法可行,所以我希望专家能够完成。我已经知道我不想使用JWT令牌。所以我想这只是留下会话cookie数据本身。我无法弄清楚如何使用cookie验证socket.io,这就是我需要帮助的地方。我正在使用redis存储会话,并使用带laravel的默认身份验证系统。
我尝试过使用这个非常适合解析会话的库。但它没有使用我的socket.io服务器进行身份验证。 https://www.npmjs.com/package/node-laravel-session
如果有人知道如何解决这个问题,我将非常感谢一些帮助。
答案
我想,你在socket.io里面有身份验证问题,想法是你不能轻易地从应用程序到应用程序共享会话,为什么呢?因为这个数据是在客户端的浏览器(cookie)和服务器(会话)之间处理的,如果你想连接Laravel和Socket.io,首先你必须做出某种流程:
- 当用户在网站上进行身份验证时,也要为socket.io设置cookie(如果主机不同)。
- 在后台,您必须通过数据库(memcached,redis等)和cookie共享会话数据。如您所知,如果您设置laravel会话参数以使用数据库,而不是使用文件,laravel将自动开始将会话数据保存到DB中,因此可以轻松地从数据库中读取会话参数。
我认为你正在使用node-laravel-session错误,我的意思是如果你在其他服务器上有node.js应用程序而你使用getSessionFromFile,它将无法正常工作。确保你正确使用它,它会工作。制作这样的东西很简单,但是当你有跨项目会话时,问题主要是安全性。
以上是关于Laravel与Socket.io Nodejs共享会话的主要内容,如果未能解决你的问题,请参考以下文章