【问题标题】:Node.js and PHP session sharingNode.js 和 PHP 会话共享
【发布时间】:2014-09-06 22:26:53
【问题描述】:

我正在尝试在我们的主 PHP 应用程序和 node.js 之间共享会话信息

我们目前使用数据库后端来存储会话,因为我们有多个可以处理请求的 Web 服务器。

有人知道从 node.js 访问会话数据的任何解决方案吗?我看到的只有redis或memcache,但是我们不能改变存储会话数据的方法。

【问题讨论】:

  • 如果你不能改变方法,那么你唯一的选择肯定是从数据库中检索会话数据并在 Node 中解析它?
  • 是的,我可以写,我只是想知道是否有人以前做过。

标签: php node.js session


【解决方案1】:

您必须使用通用格式,例如 JSON 或您自己发明的格式。为方便起见,我们假设为 JSON。

在 PHP 方面,您需要register your own session handler

session.name 设置为不特定于 PHP 的内容,例如 SESSID 而不是 PHPSESSID。

session.serialize_handler 设置为php_serialize。在 write() 方法中,首先调用 unserialize() 将传入的 $data 转换为 JSON,然后调用 json_encode() 并在数据库中设置重新编码的数据。

同样,read() 方法应该从数据库中提取会话数据(给定存储在 SESSID cookie 中的 ID 值),调用json_decode(),然后调用serialize它并返回该字符串。

我可以建议一个快速可扩展可靠数据库,例如Aerospike。但是,我有偏见。

【讨论】:

    猜你喜欢
    • 2013-05-25
    • 2016-02-22
    • 2016-01-22
    • 2015-09-04
    • 2023-04-02
    • 1970-01-01
    • 2011-12-20
    • 2014-07-10
    • 1970-01-01
    相关资源
    最近更新 更多