在我前面的博文中提出了整合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可以看到,我用正則匹配出了各應用通知的js,然後用cclientscript註冊到頁面底部。另外,由於在我的應用中頭部有個區域性載入的登入狀態,用jquery自動更新了。class webuser extends cwebuser
} //區域性重新整理頂部登入狀態 }
public function afterlogout()}}}
將這個類放在components目錄下,接下來修改config/main.php的user段設定即可:
php**
'user'
=>
array
( 'class'
=>
'webuser'
, // enable cookie-based authentication
'allowautologin'
=>true,
'loginurl'
=>
array
('/site/login'
),
),
'user'=>array(這樣有個最大的好處,就是應用記住使用者登入後,下次使用者訪問**任何頁面,都會自動登入,並同時登入到其他應用。但要注意:在使用者登入成功、退出成功等action中,不要直接redirect,還是需要輸出乙個跳轉頁面,否則這些js不會輸出到瀏覽器。'class'=>'webuser',
// enable cookie-based authentication
'allowautologin'=>true,
'loginurl' => array('/site/login'),
),
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 函式裡新...