为何UCenter能同步登陆连接的应用?

1、用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证。

2、如果验证成功,将调用位于uc_client下client.php文件中的函数uc_user_synlogin,在这个函数中调用 uc_api_post(‘user’, ‘synlogin’, array(‘uid’=>$uid))。

3、然后这个函数后向Ucenter的index.php传递数据,index.php接受传递的数据,获得model为user,action为synlogin的值。

4、然后Ucenter的index.php调用control目录下的user.php类中的onsynlogin方法,通过foreach循环,以javascript的方式通知uc应用列表中开启同步登陆的应用进行同步登录;即通过get方式传递给各个应用目录中api下的uc.php一些数据。

5、uc.php接收通知并处理get过来的数据,并在函数synlogin(位于uc.php中)通过函数_authcode加密数据(默认以UC_KEY作为密钥),用函数_setcookie设置cookie。

6、各个应用用对应的密钥解码上面设置的cookie,得到用户id等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。

应用程序的logging.php ->uc_client中的client.php->Ucenter->应用程序中api/uc.php 其实Ucenter实现同步登陆的原理就是cookie,一个应用登陆成功之后,向Ucenter传递数据,让Ucenter通知其他的应用也设置cookie,这样用户在访问其他应用的时候通过已经设置好的cookie实现自动登陆。

了解了Ucenter的同步原理,再遇到无法同步登陆,或者开发一些与UCenter接口的时候就会容易很多。

我要评论!

想一个你喜欢的昵称。
给一个你的常用邮箱。
想和萌萌哒的TA们说点啥。
  • App Transport Security(应用程序安全传输),简称ATS,是苹果在iOS 9 中首次推出的一项隐私安全保护功能,启用ATS后,它会屏蔽明文HTTP资源加载,强制App通过HTTPS连接网络服务,通过传输加密保障用户数据安全。 ATS在iOS 9 中是默认开启的,但开发者仍然可以选...
  • 一、处理器插槽选购注意事项 在我们选购主板之前,应该确定一下我们要选择什么样的主板,什么样的主板对我们来讲是合适的。最贵的产品不见得就是最适合我们的。目前市面上的主板产品根据支持CPU的不同,其实用的处理器插座并不相同。其中主要分为Intel系列以及AMD系列两大种。在这两大类型的选购下,就需要看你...
  • 是的,没错。在新版本的火狐中为了安全起见,已经默认开启了签名的校验,一开启就导致了很多的第三方软件辅助插件失效或是DEV版本的插件也失效。 怎么解决,那就得调整安全参数。 1、打开火狐,并在新建标签页中输入:“about:config”; 2、接着会提示你安全风险,点击“我保证会小心”; 3、在页面...
  • 俗话说工欲善其事,必先利其器。在常见的PHP开发中,我们经常会使用HEADER输出一些头内容来帮助浏览器快速地识别我们的行为,如404、301等,同时在下载等浏览器行为时,一个好的HEADER头能解决很多问题。 这里分享一些互联网上常用的HEADER头供开发时参考: <?php header(...
  • 背景说明 MAC地址是网卡的物理地址。每块网卡都有一个唯一的MAC地址。虽然此地址没法改变,但是可以通过软件的方法欺骗系统。克隆就是再生成一个一模一样的啦,主要的用途是为了共享上网。有的运营商不是禁止使用路由,只让一台机器上网吗? 克隆之后路由器各个口的地址一样,它就会当作只有一台机器了。 解决宽带...
微信扫一扫即可带走我!