Чтобы использовать данные из openID для входа в систему Yii, вы можете изменить / перезаписать класс UserIdentity (защищенный / компоненты).
Перезаписать существующий метод аутентификации.
На этом этапе вы также можете установить текущее имя пользователя Yii, например:
$this->username=$openId->username
(где $openId->username
следует заменить на переменную, содержащую имя пользователя openID)
Перезаписав действие side / login, вы можете вызвать модифицированный метод, например так:
$identity=new UserIdentity("m","m");//where m is dummy
if($identity->authenticate()) {
Yii::app()->user->login($identity);
[...]
}
// Обновление (из-за вашего комментария):
Не уверен, правильно ли я понимаю вашу проблему. Но что насчет добавления нового метода в UserIdentity, например authenticateOID (). вызовите этот метод в начале исходного метода authenticate (), например, так:
if ($this->authenticateOID) {/*set username & return true to end the method here*/}
else {/*original authenticate method from Yii*/}
Внутри authenticateOID()
вы проверяете, выполнена ли аутентификация OID и / или находится ли пользователь в вашей локальной "OID - таблица пользователей"