如何根据cookie(PHPSESSID or sid)获得对应的用户id?

2017-07-25 13:56:38
于磊
  • 访问次数: 5
  • 注册日期: 2017-07-25
  • 最后登录: 2017-07-26
  • 我的积分: 71
  • 门派等级: 无门派

希望第三方系统与禅道集成,大家都放在一个域名下,希望登录禅道以后,再访问这个第三方系统不必再登陆。

基本的思路是:第三方系统拿到浏览器的cookie,去禅道那边问一下:这个cookie(sessionId)在你的系统里对应的是那个userId?

禅道回答了是哪个用户后,第三方系统再用这个userId来自动登录。


禅道那边我想放一个php文件,先检查询问者是不是指定的第三方系统服务器ip,如果是的话,获得参数sessionId,并在禅道的session集合中找到对应的session,并返回session中存放的userId。


我现在的实验的做法是:

在禅道的www文件夹中放了一个getuserbycookieid.php文件(内容如下),正常登陆系统后,再请求这个文件:

session_start();
echo session_id();
echo count($_SESSION);
发现session_id打印出来的是PHPSESSID(通过firebug观测到的),但是$_SESSION这个数组竟然是空的,

请教一下大家,有没有什么好的办法可以通过cookieId来获得到userId?


我不太懂PHP,稍微知道一些java,这个第三方系统是用java写的。





于磊 最后编辑, 2017-07-25 13:57:08
沙发
2017-07-25 18:03:55
石洋洋
  • 访问次数: 6478
  • 注册日期: 2011-04-06
  • 最后登录: 2024-05-20
  • 我的积分: 96577
  • 门派等级: 幽灵 等级6 修罗
不太清楚贵公司为什么要这样做,禅道没有根据sessionid返回usedid的功能。建议还是通过禅道默认的api 进行验证获取禅道中的数据,可以参考:http://devel.easycorp.cn/book/extension/api-intro-43.html  具体api可以在禅道 后台-二次开发- api中查看。
1/1 1