我正在Node.js中构建一个聊天应用程序,只有当用户通过我的Wordpress博客登录时才能访问该应用程序。我的博客在端口80上运行,这是3000上的聊天应用程序。
我跟踪this guide在节点和PHP之间共享会话。我可以将数据存储到Redis中,但Node中的PHPSESSID与Wordpress不匹配,为什么?
修改
PHP - functions.php
function init_session() {
require('redisSessionHandler.php');
session_start();
echo session_id();
}
add_action('init', 'init_session', 1);
这将打印出以下会话ID: pmlmvsst770hj2qsjjm9gt6ja4
节点 - index.js
var app = require("http").createServer(handler),
fs = require("fs"),
redis = require("redis"),
co = require("./cookie.js");
app.listen(7070);
function handler(req, res){
fs.readFile(__dirname + "/index.html", function(err, data){
if(err){
res.writeHead(500);
return res.end("Error loading index.html");
} else {
res.writeHead(200);
res.end(data);
}
});
var cookieManager = new co.cookie(req.headers.cookie),
clientSession = new redis.createClient();
console.log(cookieManager.get("PHPSESSID"));
clientSession.get("sessions/"+cookieManager.get("PHPSESSID"), function(error, result){
console.log(result);
});
}
这将打印出以下会话ID: cv4dsufrkjk29njbfcht0rq015
这是cookie.js的链接:https://gist.github.com/nickreffitt/5005071