(求助)NODEJS如何跟PHP共享SESSION
发布于 10 年前 作者 since66 6433 次浏览 最后一次编辑是 8 年前 来自 问答

在PHP生成了SESSIONID,在浏览器生成key是PHPSESSID,value是sessionID的cookies,sessionID对应的内容存到了redis

在express也使用了connect-redis这个模块,也会生成一个sessionID,再次存入浏览器的PHPSESSID这个cookies里,

问题是express和PHP生成的sessionID不一样,在redis里会生成两条不同KEY的记录,有没有解决方案,使PHP和express同步SESSIONID,在redis获取同一条记录,以实现SESSION共享,谢谢

6 回复

memcache,redis ,mongodb

能详细点吗?我是用redis,可是PHP和express生成的SESSIONID不一样,导致redis存在 一个PHP的KEY和一个express的KEY,SESSION无法同步呀

在php往redis写数据,然后用nodejs连上redis读取数据,应该没问题的。这和用php写数据库,用nodejs读数据库差不多吧?和sessionID没多大关系。只要你php写入时的key和nodejs读取时的key一致就可以了

express sessionid可以设置啊 设置成php一样的不就可以了

回楼上, php写入时的key和nodejs读取时的key是存cookies的 var sessionStore=session({ name: ‘PHPSESSID’, secret: ‘node.js rules’, cookie: { domain: ‘.rvmon.com’}, store: new RedisStore({ prefix: ‘session:php:’, host: redis_ip, port: redis_port }); });

这个RedisStore每次存SESSION都会把nodejs的sessionID写入redis的KEY里,难道我不能用这个模块,自己实现这个功能?

@skipify 试过了,不行,就算设置成一样也娶不到,好像跟connect-redis的机制有关,

回到顶部