zoukankan      html  css  js  c++  java
  • ucenter 通信原理个人总结

     

    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等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。

     

  • 相关阅读:
    YTU 2543: 数字整除
    YTU 2542: 弟弟的作业
    YTU 2541: 汽水瓶
    YTU 2535: C++复数运算符重载(+与<<)
    YTU 2530: 小勇玩lol
    YTU 2520: 小慧唱卡拉OK
    YTU 2517: 打倒魔王↖(^ω^)↗
    YTU 2516: 剪刀石头布
    reload、replace、href、assign、window.history.go(0)的区别
    js 数组排序sort方法
  • 原文地址:https://www.cnblogs.com/kyee/p/3889462.html
Copyright © 2011-2022 走看看