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

     

  • 相关阅读:
    javascript 拷贝详解
    javascript 递归函数详解
    移动端布局解决方案
    Flexbox
    CSS中越界问题的经典解决方案
    移动应用测试方法与思路
    不是人家太装逼,而是我们太low
    GUI自动化测试策略
    GUI测试稳定性的关键技术
    GUI测试还能这么玩(Page Code Gen + Data Gen + Headless)
  • 原文地址:https://www.cnblogs.com/kyee/p/3889462.html
Copyright © 2011-2022 走看看