CNode

(求助)NODEJS如何跟PHP共享SESSION

问答
Ssince66发布于12 年前最后回复12 年前6 回复7002 浏览0 收藏

在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)

I
i5ting#1·12 年前

memcache,redis ,mongodb

S
since66#2·12 年前

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

J
jx-zhou#3·12 年前

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

S
skipify#4·12 年前

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

S
since66#5·12 年前

回楼上, 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里,难道我不能用这个模块,自己实现这个功能?

S
since66#6·12 年前

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

参与回复
登录后即可参与回复。登录