UCenter实现同步登陆原理
生活随笔
收集整理的這篇文章主要介紹了
UCenter实现同步登陆原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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接口的時候就會容易很多。
轉載于:https://blog.51cto.com/xuqin/1293551
總結
以上是生活随笔為你收集整理的UCenter实现同步登陆原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 40款奇特的名片设计,吸引大家的眼球《上
- 下一篇: 手把手教你使用ECharts绘制可视化图