亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > Discuz > 正文

yii與discuz ucenter實現同步登陸

2024-09-11 09:03:24
字體:
來源:轉載
供稿:網友

上面我們說過yii與discuz實現的通信,這里我們去研究下如何實現同步登陸,注冊,退出

說明:yii于discuz同步的前提有以下幾點:

當前主網站也discuz必須是新網站.

原因:根據ucenter提供的同步登陸方法uc_user_synlogin這里僅支持用戶的id,我們查看 表:前綴_members時,發現該表中只有用戶id即uid為主鍵的,ucenter不提供用戶名同步登陸方法,所以主網站和discuz必須是新的,如果不是新的,比如:主網站已經有部分用戶了,而論壇是后期上的,就會出現一系列問題,比如主網站登陸的時候需要先檢測論壇是否存在這個用戶,如果不存在這個用戶還需要先添加到論壇中,但是添加的時候,是需要uid,這里為了保證一致性,我設定的主網站id即為表前綴_members表中的uid,否則檢測不到數據,如果是先有論壇后有網站等也會出現一系列問題,這里就不做說明.

下面的代碼實例均是網站是新網站,discuz 論壇也是新的即,數據庫都是清空狀態.

登陸(yii系統自帶登陸方法):

1、找到,目錄:protected/controller/SiteController.php

找到actionLogin這個方法,具體代碼如下,覆蓋即可:

  1. public function actionLogin() 
  2.     { 
  3.         $model = new LoginForm; 
  4.         if(isset($_POST['ajax']) && $_POST['ajax']==='login-form'
  5.         { 
  6.             echo CActiveForm::validate($model); 
  7.             Yii::app()->end(); 
  8.         } 
  9.         if(isset($_POST['LoginForm'])) 
  10.         { 
  11.             $model->attributes=$_POST['LoginForm']; 
  12.             if($model->validate() && $model->login()){ 
  13.                 Yii::import('application.vendor.ucenter.*');//引入文件夾 
  14.                 include_once 'ucenter.php'//引入文件 
  15.                 $script = uc_user_synlogin(Yii::app()->user->id);  //調用ucenter的通信代碼,大家可以去追蹤下代碼,最后追蹤到的代碼uc_server/control/user.php這里么,在這個函數中onsynlogin。我們可以看到最終返回的是引入的js文件,但是這里如果你打印或者輸出來$script是不顯示的,因為瀏覽器已經給轉義了,你可以查看源碼,即可看到js引入。 
  16.                 echo "$script";//這里的echo是執行$script,如果你不寫執行則不會觸發這個$script;有好多地方這里寫的是$this->redirect("要跳轉的路徑");。但是我這樣寫的時候出現了問題,因為,上面的echo $script畢竟是js代碼,執行沒有$this->redirect的速度快,所以優先執行了這個,導致不能同步登陸。所以這里改成下面這種寫法,畢竟都是js,所以優先執行了上面的js引入。 
  17.                 echo '《script type="text/javascript">window.location.href="'.Yii::app()->user->returnUrl.'";《/script>'
  18.                 Yii::app()->end();//終止程序,類似于exit 或者dir(); 
  19.             } //Vevb.com 
  20.         } 
  21.         $this->render('login',array('model'=>$model)); 
  22.     } 

登陸(自定義登陸方法且是ajax情況,這個情況比較復雜),其他代碼都一樣,這里僅貼出主要代碼.

  1. //這里省略了ajax傳入這個頁面判定用戶信息是否是我們需要的用戶信息,且當前主網站有這個用戶 
  2.               Yii::import('application.vendor.*'); 
  3.                include_once 'ucenter.php'
  4.                $script = uc_user_synlogin($oneUser->id);  //這里已經拿到js代碼了,但是沒法執行里面的代碼,不能像上面呢樣直接輸出,直接輸出我這里不能執行。 
  5.                $matches = ''
  6.                $pattern =''
  7.                preg_match($pattern,$script,$matches); 
  8.                $url = $matches[1];//這里將src中的地址拿出來 
  9.                header("location:$url");//用header跳轉執行,我使用curl的時候也不能執行,暫時不知道是啥原因 
  10.                echo 1;//這里好像還必須輸出任意東西,不然還會出現一系列問題。但是理論上,上面的header已經跳走了,下面的echo 1應該是不執行的。確實是不執行的但是還必須有,這里就先不糾結了。 

退出:

1、退出沒有實際的什么難點,主要還是和上面以上php比js優先執行的問題,注意這點就可以了,下面是實際代碼:

  1. public function actionLogout() 
  2.     { 
  3.         Yii::app()->user->logout(); 
  4.         Yii::import('application.vendor.*'); 
  5.         include_once 'ucenter.php'
  6.         $script = uc_user_synlogout(); 
  7.         echo $script
  8.  
  9.         Yii::app()->end(); 
  10.     }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
77777少妇光屁股久久一区| 国内精品小视频在线观看| 91免费的视频在线播放| 久久精品在线播放| 国产精品久久久久免费a∨大胸| 亚洲色图av在线| 亚洲黄色免费三级| 国产精品美女久久久久av超清| 欧美日韩国产页| 久热99视频在线观看| 91精品视频在线看| 久久久久久久国产精品视频| 国产综合视频在线观看| 日本精品视频网站| 久久精品国产v日韩v亚洲| 日韩欧美在线免费观看| 欧美日韩激情小视频| 青青草一区二区| 国产精品第七十二页| y97精品国产97久久久久久| 日本成人精品在线| 欧美乱妇高清无乱码| 91亚洲va在线va天堂va国| 欧美黑人极品猛少妇色xxxxx| 成人黄色影片在线| 国产成人免费91av在线| 国产69久久精品成人看| 66m—66摸成人免费视频| 国产精品丝袜一区二区三区| 成人黄色中文字幕| 欧美日本高清视频| 最近2019中文字幕在线高清| 日韩a**中文字幕| 中文字幕亚洲欧美日韩在线不卡| 奇米影视亚洲狠狠色| 亚洲国产欧美一区| 亚洲a级在线播放观看| 日韩在线视频一区| 色妞在线综合亚洲欧美| 亚洲一区二区久久久久久| 91久久在线观看| 亚洲少妇激情视频| 日韩在线观看精品| 亚洲欧美综合v| 亚洲精品视频免费| 国产成人精品久久二区二区91| 亚洲老司机av| 国产日韩欧美在线看| 欧美日韩国产激情| 亚洲国产黄色片| 午夜精品久久久久久久99黑人| 亚洲精品午夜精品| 日产精品久久久一区二区福利| 精品亚洲男同gayvideo网站| 色爱av美腿丝袜综合粉嫩av| 一区二区三区视频在线| 亚洲护士老师的毛茸茸最新章节| 亚洲欧美国产一本综合首页| 中文字幕少妇一区二区三区| 欧美亚洲日本黄色| 国产精品劲爆视频| 国产精品成人av在线| 国产日韩精品入口| 97香蕉超级碰碰久久免费软件| 国产精品综合久久久| 亚洲一区二区三区sesese| 中文字幕亚洲色图| 欧美大片免费观看在线观看网站推荐| 456亚洲影院| 亚洲精品在线91| 亚洲人成电影网| 国产精品欧美久久久| 一区二区三区视频观看| 亚洲天堂日韩电影| 欧美成人精品在线播放| 九九热精品视频| 亚洲精品日韩久久久| 欧美一级片久久久久久久| 欧美精品制服第一页| 久久精品视频亚洲| 精品久久久久久久久久久久久久| 欧美在线视频播放| 亚洲免费一级电影| 欧美激情亚洲一区| 久久久爽爽爽美女图片| 亚洲免费伊人电影在线观看av| 日韩大陆毛片av| 亚洲欧美国产日韩中文字幕| 91麻豆桃色免费看| 国产一区香蕉久久| 高清欧美性猛交xxxx黑人猛交| 国产成人一区二区三区| 秋霞av国产精品一区| 成人激情视频在线| 日韩中文字在线| 97国产精品视频| 成人av在线网址| 成人激情视频在线观看| 米奇精品一区二区三区在线观看| 国产精品视频男人的天堂| 久久精品影视伊人网| 久久九九精品99国产精品| 日av在线播放中文不卡| 自拍亚洲一区欧美另类| 亚洲www在线| 国产一区二区av| 国产不卡视频在线| 国产精品激情av电影在线观看| 久久视频免费在线播放| 色婷婷久久一区二区| 精品久久久久久中文字幕大豆网| 98精品国产高清在线xxxx天堂| 日本不卡免费高清视频| 久久这里只有精品视频首页| 丰满岳妇乱一区二区三区| 国产一区二区在线免费视频| 91中文精品字幕在线视频| 亚洲精品中文字幕av| 国产99视频精品免视看7| 4438全国成人免费| 亚洲精品日韩在线| 在线国产精品视频| 91精品国产自产在线老师啪| 91精品国产沙发| 日韩精品www| 亚洲欧美色婷婷| 亚洲人成网站免费播放| 91在线观看免费高清完整版在线观看| 91久久国产综合久久91精品网站| 久久久最新网址| 91麻豆国产精品| 国产成人avxxxxx在线看| 精品久久久久久久久久ntr影视| 亚洲成人三级在线| 91九色国产在线| 国产精品18久久久久久首页狼| 色天天综合狠狠色| 韩剧1988免费观看全集| 亚洲第一免费播放区| 2019日本中文字幕| 国产精品高潮在线| 久久久久久97| 国内精品久久久久久影视8| 91禁国产网站| 搡老女人一区二区三区视频tv| 亚洲国产欧美久久| 欧美性受xxxx白人性爽| 亚洲一区av在线播放| 亚洲a中文字幕| 成人伊人精品色xxxx视频| 国产亚洲精品美女| 国产婷婷色综合av蜜臀av| 亚洲美女中文字幕| 欧美一性一乱一交一视频| 欧美亚洲视频在线看网址| 成人福利视频在线观看| 亚洲国产精品美女| 国产不卡精品视男人的天堂| 色综合五月天导航| 亚洲福利视频久久| 成人妇女免费播放久久久| 日本久久91av| 久久久久久久久爱| 成人精品一区二区三区电影免费|