Node Express上的Node Express PHP共享会话

时间:2016-01-29 20:23:03

标签: php node.js session express redis

我尝试在此处实施解决方案:How to share session between NodeJs and PHP using Redis?

如果我在Node中创建一个会话然后加载我的PHP页面,它会很有用。会议结合在一起。我需要知道如何在PHP中创建会话,然后在我访问节点站点时将它组合在一起。我的两个网站都在100%的同一个域上。

在这个片段中,我添加了$ echo $ sess_id行,它出现在"" (我觉得这是问题的关键)。如果我做session_id(' temp'); redis键成为session:php:temp但显然它需要是nodeJS理解的东西。我也肯定在node / php上使用相同的密钥。

    } else {
      // let PHP generate us a new id
      session_regenerate_id();
      $sess_id = session_id();
      echo $sess_id;
      $hmac = str_replace("=", "", base64_encode(hash_hmac('sha256', $sess_id, EXPRESS_SECRET, true)));
      // format it according to the express-session signed cookie format
      session_id("s:$sess_id.$hmac");
    }

因为当我使用redis-cli密钥时*我得到一个名为session的密钥:php:没有会话ID。如果我做redis-cli GET会话:php:我得到了

"{\"php\":\"Hello from PHP\",\"cookie\":[]}"

我知道PHP正在与redis交谈,它只是没有保存具有会话ID的真实会话。

我已经好几天了,任何帮助都会非常感激,我很乐意回答任何问题。

它也值得一无所获我没有错误和以下几行

echo json_encode($_COOKIE, JSON_PRETTY_PRINT);
echo json_encode($_SESSION, JSON_PRETTY_PRINT);

输出

[

]{
    "php": "Hello from PHP",
    "cookie": [

    ]
}

如果我在节点中启动会话,那些行将从节点输出完整的cookie /会话信息,并添加php的php hello(完美组合)。

0 个答案:

没有答案