Difference between #2 and #3 of
Using multiple models in an identity

Revision #3 has been created by Néstor Acevedo on Sep 16, 2021, 1:13:45 AM with the memo:

I added the method findByUsername inside Identity model, and I changed inside the method getUser from LoginForm, the static function to use Identity::findByUsername according with the common LoginForm model.
« previous (#2) next (#4) »

Changes

Title unchanged

Using multiple models in an identity

Category unchanged

How-tos

Yii version unchanged

2.0

Tags unchanged

authentication,identity

Content changed

[...]
}

public function validatePassword($password)
{
return password_verify($password, $this->_passwordHash);
}
 
    
 
    public static function findByUsername(username)
 
    {
 
        $model = Customer::find()->where(['username' => $username])->one();
 
        if (!$model) {
 
            $model = Supplier::find()->where(['username' => $username])->one();
 
        }
 
 
        if (!$model) {
 
            return false;
 
        }
 
 
        if ($model instanceof Customer) {
 
            $type = self::TYPE_CUSTOMER;
 
        } else {
 
            $type = self::TYPE_SUPPLIER;
 
        }
 
 
        $identity = new Identity();
 
        $identity->_id = $type . '-' . $model->id;
 
        $identity->_authkey = $model->authkey;
 
        $identity->_passwordHash = $model->password_hash;
 
        return $identity;
 
    }


public static function findIdentityByEmail($email)
[...]
{
if ($this->_user === false) {
$this->_user = Identity::find
IdentityByEmailByUsername($this->username);
}

return $this->_user;
}
}
[...]
9 2
5 followers
Viewed: 36 785 times
Version: 2.0
Category: How-tos
Written by: samdark
Last updated by: Néstor Acevedo
Created on: Oct 7, 2018
Last updated: 3 months ago
Update Article

Revisions

View all history