從OpenID的使用數據的Yii登錄,你可以修改/覆蓋UserIdentity類(受保護/組件)。
覆蓋現有authenticate方法。 此時,您還可以設置當前Yii的用戶名,如:
$this->username=$openId->username
通過覆蓋面/ login動作(其中$openId->username
應該由它包含的OpenID用戶名變量代替)你可以叫你修改的方法,如:
$identity=new UserIdentity("m","m");//where m is dummy
if($identity->authenticate()) {
Yii::app()->user->login($identity);
[...]
}
//更新(因爲您的評論的): 不知道,如果我理解你的問題所在。但是在UserIdentity中添加一個新方法,如authenticateOID()。調用此方法在原來的身份驗證()方法的開頭,就像這樣:
if ($this->authenticateOID) {/*set username & return true to end the method here*/}
else {/*original authenticate method from Yii*/}
裏面authenticateOID()
你是否OID進行身份認證和/或如果用戶仍然在你們當地的「OID - 用戶表」
我沒有用它自己,但我不知道是否有可能這與[警予用戶(http://www.yiiframework.com/extension/yii-user/)擴展集成? – ldg
@ldg - [yii-user-management](http://www.yiiframework.com/extension/yii-user-management/)包含openid,但我不需要整個用戶管理,我可以沒有按照足夠的代碼來看看他們如何實現openid登錄部分。我剛開始編寫OOP風格的代碼,所以這也讓它變得很難。我沒有看到你提到的yii用戶鏈接中的openid。 – Mark