ecshop,discuz,ucenter单点登录原理

2015-05-20 10:13:27

一直没有弄清楚它的单点登录是怎么做的,今天仔细研究了下代码,发现原理如下:

首先在ECSHOP中登录提交的时候,系统会将用户提交的用户名和密码和ucenter里面的member中查找,如果查找到,则调用单点登 录函数,该函数会构造一个请求,发送到UCENTER去,请求里面包含了用户ID,UCENTER接到请求后,会到UCENTER的应用表中去查找 UCENTER中设置的所有应用(假如这里只有ECSHOP,DISCUZ),然后再发送请求到Discuz的api/uc.php,请求里面包含了用户 ID,然后uc.php收到请求后,进行一系列匹配,如果成功,则设置本站的SESSION和COOKIE.这里需要注意的是ECSHOP发送请求到 ucenter的时候,是利用的fsockopen函数,而ucenter发送请求到api/uc.php的时候,是利用的<script src="http://murongshuai.blog.163.com/blog/www.xxx.com/discuz/api/uc.php?xxx">,通过客户端调用的uc.php。在设置cookie的时候, 由于有兼容性问题,需要发送P3P才能成功。

http://xuebingnanmm.javaeye.com/blog/627840,这篇文章有详细的介绍。

利用上面的原理,将不同系统的用户系统整合到一起就变得较为简单了。

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注