首页 > 其他 > 详细

ucenter 通信原理个人总结

时间:2014-08-04 10:55:37      阅读:451      评论:0      收藏:0      [点我收藏+]

 

  1. 用户登陆discuz,调用on_login() , on_login ()里调用了userlogin() 验证用户信息,正确的话,调用uc_user_synlogin(),然后调用uc_api_post(‘user‘, ‘synlogin‘, array(‘uid‘=>$uid)),向uc_server/index.php 传输数据,model为user,action为synlogin,然后调用uc_server/control/user.php 里的onsynlogin方法,通过foreach循环,以javascript的方式通知uc应用列表中开启同步登陆的应用进行同步登录;discuz自身的ucenter通信到此结束;

  2. discuz外的应用api/uc.php接收通知并处理get过来的数据,并在函数synlogin(位于uc.php中)通过函数authcode加密数据,用函数wp_set_auth_cookie设置cookie。各个应用用对应的密钥解码上面设置的cookie,得到用户id等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。




discuz:


用户登陆

-> /member.php

-> /source/module/member/member_logging.php

-> /source/class/class_member.php(on_login )

-> /uc_client/client.php(uc_user_synlogin

-> uc_api_post(‘user‘, ‘synlogin‘, array(‘uid‘=>$uid)) )

-> uc_server/index.php

-> uc_server/control/user.php(onsynlogin)

-> 以javascript 方式通知uc应用列表中开启同步登陆的应用进行同步登录


wordpress:


get方式接受ucenter传过来的数据

-> /wp-content/plugins/ucenter-integration/api/uc.php (synlogin)

-> 通过函数authcode加密数据,用函数wp_set_auth_cookie设置cookie

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

 

ucenter 通信原理个人总结,布布扣,bubuko.com

ucenter 通信原理个人总结

原文:http://www.cnblogs.com/kyee/p/3889462.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!