在Node.js中使用PHP会话(存储在mySql中)

我试着在node.js中使用活动会话(在php中启动)

对于PHP,我将会话存储在mysql中(通过使用session_set_save_handler ,如http://phpsecurity.org/code/ch08-2中所述 )。 适用于PHP。

现在计划:

1)从PHP应用程序的客户端“执行”node.js链接与客户端的PHPSESSID cookie在GET:

 http://192.168.0.222:53077/?phpsession=02isg9kv8fbveqhmt1htcj6cc7 

2)在node.js服务器端获取PHPSESSID,在mysql会话表中查找它的值

3)如果mysql中存在PHPSESSID值 – 读取存储在mysql(会话表)中的用户id,名称和其他用户的数据,

问题是 – 是对的吗? 我认为我错了,至less从第2步。什么是正确的方式工作在Node.js会话存储在MySQL中从PHP开始?

请尽量不build议我将会话存储在memcached或redis中,我select了mysql。

由于您使用session_set_save_handler自己处理会话,因此您可以select以任何您想要的方式序列化数据。 我会build议json_encode()与nodejs的兼容性。

PHP给你的保存处理程序已经序列化的数据作为一个string,所以你需要反序列化()它并重新序列化与json_encode。 在返回到PHP之前,将会话blob读取调整为json_decode()和serialize()。

1,2和3的步骤似乎是正确的。 更详细的问题可以提供更好的答案。

我会build议确保你的SQL表作为会话存储的几列。

  • “created_on”整数时间戳
  • “updated_on”整数时间戳
  • “long_term”small int,如果用户选中“记住我”或类似的东西,这应该跳过正常的会话垃圾回收
  • “ip_addr”可以用来提醒用户潜在的会话劫持。
  • “代理”可以是md5或sha1用户代理的总和,以检测来自不同设备/浏览器的访问