Yii框架整合Ucenter更新與增強

2022-09-11 00:24:29 字數 1469 閱讀 9900

在我前面的博文中提出了整合ucenter到yii應用的方法,還有一些不完美,那就是,登入、退出需要手動輸出js到頁面上來通知其他應用。那麼如何做到自動處理,而不需要特別照顧?我發現只需要繼承cwebuser類,實現自己的webuser類,並覆蓋登入和退出兩個事件即可,不多說,上**:

php**

<?php  

class

webuser

extends

cwebuser 

}  //區域性重新整理頂部登入狀態

, 'top.$("#top_n**").load("'

.chtml::normalizeurl(

array

('/site/login_status'

)).'");'

); 

}  public

function

afterlogout() 

}  , 'top.$("#top_n**").load("'

.chtml::normalizeurl(

array

('/site/login_status'

)).'");'

); 

}  } 

<?php 

class webuser extends cwebuser

} //區域性重新整理頂部登入狀態 }

public function afterlogout()}}}

可以看到,我用正則匹配出了各應用通知的js,然後用cclientscript註冊到頁面底部。另外,由於在我的應用中頭部有個區域性載入的登入狀態,用jquery自動更新了。

將這個類放在components目錄下,接下來修改config/main.php的user段設定即可:

php**

'user'

=>

array

(  'class'

=>

'webuser'

,  // enable cookie-based authentication

'allowautologin'

=>true, 

'loginurl'

=>

array

('/site/login'

), 

), 

'user'=>array(

'class'=>'webuser',

// enable cookie-based authentication

'allowautologin'=>true,

'loginurl' => array('/site/login'),

),

這樣有個最大的好處,就是應用記住使用者登入後,下次使用者訪問**任何頁面,都會自動登入,並同時登入到其他應用。但要注意:在使用者登入成功、退出成功等action中,不要直接redirect,還是需要輸出乙個跳轉頁面,否則這些js不會輸出到瀏覽器。

Ucenter會員整合

之前簡單的寫過一篇的使用者註冊整合ucenter的文章,因為寫的很簡潔,很多童鞋都看的不是很明白,也收到了很多童鞋的問題郵件。前幾天因為公司的幾個 需要做同步登入功能,因此就用到了ucenter作為中間橋梁。現在很多開源的cms系統,部落格系統,論壇系統都自帶整合ucenter的外掛程式,但是 如果...

整合 ucenter 註冊自動啟用

應用整合 ucenter,同步註冊到 discuz 的使用者,在 discuz 登入時得手動啟用,使用者體驗很不好,不過解決方法很簡單 修改應用下的 uc client model user.php 檔案,大概在 138 行 ucenter 1.6 處的 function add user 函式裡新...

整合 ucenter 註冊自動啟用

應用整合 ucenter,同步註冊到 discuz 的使用者,在 discuz 登入時得手動啟用,使用者體驗很不好,不過解決方法很簡單 修改應用下的 uc client model user.php 檔案,大概在 138 行 ucenter 1.6 處的 function add user 函式裡新...