openIDのデータをYiiログインとして使用するには、UserIdentityクラス(protected/components)を変更または上書きできます。
既存の認証メソッドを上書きします。この時点で、あなたはまた、のような現在のYiiのユーザー名を設定することができ :
側/ログインアクションを上書きすることで
($openId->username
はOpenIDのユーザー名が含まれている変数で置き換える必要があります)
$this->username=$openId->username
、
$identity=new UserIdentity("m","m");//where m is dummy
if($identity->authenticate()) {
Yii::app()->user->login($identity);
[...]
}
//(なぜなら、あなたのコメントの)更新: ない私はあなたの問題の権利を理解していれば、必ずこのように、変更したメソッドを呼び出すことができます。しかし、authenticateOID()のようにUserIdentityに新しいメソッドを追加するのはどうでしょうか。そのように、元のauthenticate()メソッドの開始時に、このメソッドを呼び出す:OID認証が行われているかどうかをチェック
if ($this->authenticateOID) {/*set username & return true to end the method here*/}
else {/*original authenticate method from Yii*/}
authenticateOID()
内部および/または場合で、まだユーザーあなたローカル「OID - ユーザテーブル」
私はそれを自分で使っていませんが、これを[yii-user](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