Есть ли способ заставить yii
аутентифицировать пользователя по заданному имени пользователя без консультации с базой данных?Yii: принудительно аутентифицировать
Мое приложение будет использовать api
для входа в систему и до этого api
не написано, мы не можем использовать app
.
Beacause этого api
мы не имеем user
модель так, то процесс аутентификации трещин при попытке использовать User::model()
public function authenticate()
{
if (strpos($this->username,"@")) {
$user=User::model()->findByAttributes(array('email'=>$this->username));
} else {
$user=User::model()->findByAttributes(array('username'=>$this->username));
}
if($user===null)
if (strpos($this->username,"@")) {
$this->errorCode=self::ERROR_EMAIL_INVALID;
} else {
$this->errorCode=self::ERROR_USERNAME_INVALID;
}
else if(Yii::app()->getModule('user')->encrypting($this->password)!==$user->password)
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else if($user->active==0&&Yii::app()->getModule('user')->loginNotActiv==false)
$this->errorCode=self::ERROR_STATUS_NOTACTIV;
else if($user->active==-1)
$this->errorCode=self::ERROR_STATUS_BAN;
else {
$this->_id=$user->id;
$this->errorCode=self::ERROR_NONE;
$user->saveState($this);
}
return !$this->errorCode;
}