ucenter应用同步登录的原理

来源:互联网 发布:自然灾害数据查询 编辑:程序博客网 时间:2024/05/01 08:14
1:ecshop登录的时候自动执行uc_client\client.php中的uc_fopen方法,里面用到了fsockopen方法。这个方法向uc端发送同步登录请求。比如:
POST /ucenterhy/index.php?__times__=1 HTTP/1.0Accept: */*Accept-Language: zh-cnContent-

Type: application/x-www-form-urlencodedUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) 

AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36Host: 

localhostContent-Length: 184Connection: CloseCache-Control: no-cacheCookie: 

m=user&a=synlogin&inajax=2&release=20110501&input=710ba1TARxLLzwFGwFwPsiYbgxm1Nto0g5w9pEQlP

8K5oj7bbJ610Yk%2BXhv2B2bfxQLFm7J5xuoUR0CITOA62dBFTOiM8IV3ZgmErhXrwvwEZ
2:uc端(control/user.php里面的onsyslogin方法)接到sock请求后,返回js代码,js代码的src属性带有各个应用的api登录地址。比如:
<script type="text/javascript" src="http://localhost/b2c//api/uc.php?

time=1434072189&code=d989NZ22Bz5WHUUFdoSQ8Wop9Nte4ONeixCqq0wqRrLTFa2rW4LLDQaaJnelf3pv7dih9c

q%2FyY6HbErTdZuSBbB5ES5osR8ptUjWPwuo

%2BtBuysJ2KYZygvbUgxc3yA0lC7P5fxQxQcA93k3o6598gdK87jt93SfO9SGC" reload="1"></script>

<script type="text/javascript" src="http://localhost/ebooks//api/uc.php?

time=1434072189&code=8e07iP60MUPdgABiEd1LuB%2FXd44T9ipaTk1ed%2FHIh9naJ2Ek9AtrXYqclX

%2Byhp4nrtdW2LZQ5LiFOWk4HHy78t6oGHHv3BAssE0JheR4F4cuNTBkX92isDAlb4yxzTbK6PMgK

3:我的服务器域名比较乱。内网内不能访问本服务的外网域名地址。解决办法是:
应用的主url设置为内网域名或ip。如:http://localhost/b2c/
应用的其他URL设置为该应用的外网域名url。如:http://baidu.com/b2c
这样内外网都完美的解决了同步登录的问题!
0 0