PHP和NodeJs开发的应用如何共用Session

michaelW
  • 4
新手上路,请多包涵

分别用PHP和NodeJs开发了两个应用,那么这两个应用如何共用一个session?

回复
阅读 4.9k
2 个回答
丁文森
  • 787
✓ 已被采纳

了解下session的机制

  1. 客户端(浏览器中) cookie 作为键值,匹配服务器端的一个数据。然后客户端每次在 HTTP 请求里面带着那个 cookie,然后服务器端“理所当然”认为服务器端的这个数据是针对该客户端的。
  2. 某些系统喜欢把 session 内容编码后加密放在 cookie 里面

SO:

  1. 你可以共用 cookie,然后把数据放在 nodejs 和 拍黄片(Sorry,是PHP) 都可以取到的地方,例如 redis。影像中 php 默认的 session 是写他自己的文件的,So,你需要同时重写。
  2. 两个服务端共用一套加解密方式,不过不太建议。

二者共享的基础的基础条件是:
1. 客户端的cookie中保存 session_id值的cookie name一样
2. 服务端把session数据保存在共享的存储介质中,比如数据库、redis。通过同样的方式序列化、反序列化session值。例如二者都使用 json格式来做存储
参考这个项目:https://gist.github.com/mscdex/9507b0d8df42e0aec825 给出了phpnode.js共享的方案,其中php使用的存储方案:redis-session-php

宣传栏