国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

UCenter單點(diǎn)登錄/同步登錄/同步登出實(shí)例

2024-08-30 19:06:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

UCenter同步流程:前提是需要在Ucenter上面添加好需要同步登錄的應(yīng)用,至少2個(gè)才能看到效果,并且顯示,通信成功.

假如我添加了A,B兩個(gè)應(yīng)用網(wǎng)站

1.首先當(dāng)A站登錄時(shí),登錄成功后,處理實(shí)質(zhì)是調(diào)用uc_client提供的方法向UCenter獲取2個(gè)腳本代碼(A、B站),這兩個(gè)腳本代碼就是訪問(wèn)A、B兩個(gè)站的api/uc.php中的登錄方法,可以在方法中做登錄所需session和cookie操作。

2.當(dāng)?shù)浅鰰r(shí),操作和登錄是一樣的,都需要向UCenter獲取2個(gè)腳本代碼,目的是用來(lái)觸發(fā)A、B站的api/uc.php中登出方法。

重點(diǎn):當(dāng)獲取到2個(gè)腳本代碼后一定需要在輸出讓瀏覽器運(yùn)行,否則將不會(huì)實(shí)現(xiàn)同步登錄登出.

建議:開(kāi)發(fā)調(diào)試的時(shí)候,借助瀏覽器監(jiān)控來(lái)查看返回輸出值,我當(dāng)時(shí)用的是chrome F12 后 打開(kāi)Network標(biāo)簽.

實(shí)例詳解:所謂單點(diǎn)登錄,無(wú)非就是幾個(gè)站點(diǎn)共用一個(gè)用戶中心,實(shí)現(xiàn)同步登陸,同步退出.

服務(wù)器端:Loog SSO

客服端:ucenter,說(shuō)實(shí)話dz商業(yè)化確實(shí)讓php發(fā)展了不少.

ucenter 基本原理:其實(shí)最終還是 用戶去登錄 只是采用了ajax 用戶不會(huì)發(fā)現(xiàn),我們來(lái)看看和ucenter的具體程序,config.php代碼如下:

  1. define(‘UC_CONNECT’, ’mysql’); // 連接 UCenter 的方式: mysql/NULL, 默認(rèn)為空時(shí)為fscoketopen() 
  2.  
  3. //數(shù)據(jù)庫(kù)相關(guān) (mysql 連接時(shí), 并且沒(méi)有設(shè)置 UC_DBLINK 時(shí), 需要配置以下變量)  
  4. define(‘UC_DBHOST’, ’localhost’); // UCenter 數(shù)據(jù)庫(kù)主機(jī)  
  5. define(‘UC_DBUSER’, ’root’); // UCenter 數(shù)據(jù)庫(kù)用戶名  
  6. define(‘UC_DBPW’, ’123′); // UCenter 數(shù)據(jù)庫(kù)密碼  
  7. define(‘UC_DBNAME’, ’ucenter’); // UCenter 數(shù)據(jù)庫(kù)名稱  
  8. define(‘UC_DBCHARSET’, ’utf8′); // UCenter 數(shù)據(jù)庫(kù)字符集  
  9. define(‘UC_DBTABLEPRE’, ’ucenter.uc_’); // UCenter 數(shù)據(jù)庫(kù)表前綴  
  10. define(‘UC_KEY’, ’safefewfef’); // 與 UCenter 的通信密鑰, 要與 UCenter 保持一致  
  11. define(‘UC_API’, ’http://www.survivalescaperooms.com/uc’);// UCenter 的 URL 地址, 在調(diào)用頭像時(shí)依賴此常量  
  12. define(‘UC_CHARSET’, ’utf-8′); // UCenter 的字符集  
  13. define(‘UC_IP’, ’127.0.0.1′); // UCenter 的 IP, 當(dāng) UC_CONNECT 為非 mysql 方式時(shí), 并且當(dāng)前應(yīng)用服務(wù)器解析域名有問(wèn)題時(shí), 請(qǐng)?jiān)O(shè)置此值  
  14. define(‘UC_APPID’, ’3′); // 對(duì)應(yīng)到ucenter當(dāng)前應(yīng)用的 ID  
  15. define(‘UCDOMAIN’,'http://www.survivalescaperooms.com/’); // 域名設(shè)置 
  16.  
  17. //一些 Cookie 設(shè)置  
  18. $_UC = array();  
  19. $_UC["cookiedomain"] = ”; // cookie 作用域  
  20. $_UC["cookiepath"] = ’/'; // cookie 作用路徑  
  21. $_UC["cookiepre"] = ’uc_’; // cookie 前綴  
  22. $_UC["cookietime"] = ’31536000′; //cookie 作用時(shí)間 

配置文件寫(xiě)好后,到ucenter后臺(tái)里面添加一個(gè)應(yīng)用記住是自定義的‘UC_KEY’必須和config.php里面相同,接下來(lái)就是你的主目錄下的api/uc.php文件.

例如應(yīng)用url 填寫(xiě)為 http://www.survivalescaperooms.com 那么我就有對(duì)應(yīng)的http://www.survivalescaperooms.com/api/uc.php

如果要自定義的話,請(qǐng)確認(rèn)你的對(duì)應(yīng)關(guān)系,最重要的就是api/uc.php,同步登錄就是訪問(wèn)各個(gè)應(yīng)用的uc.php 關(guān)于這個(gè)dz已經(jīng)給了demo,PHP代碼如下:

  1. define(‘API_DELETEUSER’,0); //note 用戶刪除 API 接口開(kāi)關(guān)  
  2. define(‘API_RENAMEUSER’, 0); //note 用戶改名 API 接口開(kāi)關(guān)  
  3. define(‘API_GETTAG’, 0); //note 獲取標(biāo)簽 API 接口開(kāi)關(guān)  
  4. define(‘API_SYNLOGIN’, 1); //note 同步登錄 API 接口開(kāi)關(guān)  
  5. define(‘API_SYNLOGOUT’, 1); //note 同步登出 API 接口開(kāi)關(guān)  
  6. define(‘API_UPDATEPW’, 0); //note 更改用戶密碼 開(kāi)關(guān)  
  7. define(‘API_UPDATEBADWORDS’, 0); //note 更新關(guān)鍵字列表 開(kāi)關(guān)  
  8. define(‘API_UPDATEHOSTS’, 0); //note 更新域名解析緩存 開(kāi)關(guān)  
  9. define(‘API_UPDATEAPPS’, 0); //note 更新應(yīng)用列表 開(kāi)關(guān)  
  10. define(‘API_UPDATECLIENT’, 0); //note 更新客戶端緩存 開(kāi)關(guān)  
  11. define(‘API_UPDATECREDIT’, 0); //note 更新用戶積分 開(kāi)關(guān)  
  12. define(‘API_GETCREDITSETTINGS’, 0); //note 向 UCenter 提供積分設(shè)置 開(kāi)關(guān)  
  13. define(‘API_GETCREDIT’,0); //note 獲取用戶的某項(xiàng)積分 開(kāi)關(guān)  
  14. define(‘API_UPDATECREDITSETTINGS’, 0); //note 更新應(yīng)用積分設(shè)置 開(kāi)關(guān)  

這些參數(shù)都是向別的應(yīng)用提供的功能開(kāi)關(guān),最后關(guān)于 自己的頁(yè)面如何同步登錄 別的應(yīng)用,PHP代碼如下:

include_once ’../config.php’; 

include_once ’../uc_client/client.php’;

你的驗(yàn)證登錄部分,代碼如下:

  1. list($uid$username$password) = uc_user_login($_POST[username], $_POST[password]);//進(jìn)入ucenter驗(yàn)證  
  2. $ucsynlogin = uc_user_synlogin($uid);//同步登錄  
  3. echo $ucsynlogin;//因?yàn)槭莂jax 要echo  

只用php,康盛的解決方案是比較不錯(cuò)的了,而且利用了p3p頭實(shí)現(xiàn)了 不同域名 單點(diǎn)登錄,缺點(diǎn)就是采用ajax 客服端請(qǐng)求,如果有10個(gè)以上應(yīng)用,登錄速度就慢下來(lái)了,這時(shí)候就可以考慮下七夜的Loong SSO.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 张家口市| 肥城市| 宣武区| 长丰县| 建始县| 即墨市| 五常市| 田林县| 松桃| 子长县| 海淀区| 河曲县| 靖江市| 大城县| 宿松县| 拜泉县| 房产| 都兰县| 贵州省| 渭源县| 恩施市| 安达市| 喀什市| 杭锦旗| 开江县| 兴安盟| 华宁县| 阜宁县| 柳江县| 稻城县| 夏河县| 青河县| 六盘水市| 华安县| 安溪县| 辛集市| 临清市| 基隆市| 泊头市| 托克逊县| 修武县|