83 lines
1.9 KiB
PHP
83 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace service\models;
|
|
|
|
use common\models\ServiceUserToken;
|
|
use yii\web\IdentityInterface;
|
|
use Yii;
|
|
|
|
class ServiceUser extends \common\models\ServiceUser implements IdentityInterface
|
|
{
|
|
public static $token = null;//记录下当前token,方便退出
|
|
|
|
public static function findIdentity($id)
|
|
{
|
|
return static::findOne(['id' => $id]);
|
|
}
|
|
|
|
public static function findIdentityByAccessToken($token, $type = null)
|
|
{
|
|
$checkToken = ServiceUserToken::checkToken($token);
|
|
if(!$checkToken){
|
|
return false;
|
|
}
|
|
$su_id = $checkToken->su_id;
|
|
$su = static::findOne($su_id);
|
|
if(!$su_id || !$su || $su->is_delete){
|
|
return false;
|
|
}
|
|
|
|
self::$token = $token;
|
|
return $su;
|
|
}
|
|
|
|
/**
|
|
* 验证密码
|
|
*
|
|
* @param string $password password to validate
|
|
* @return boolean if password provided is valid for current user
|
|
*/
|
|
public function validatePassword($password)
|
|
{
|
|
return Yii::$app->security->validatePassword($password, $this->password);
|
|
}
|
|
|
|
/**
|
|
* 设置加密后的密码
|
|
*
|
|
* @param string $password
|
|
*/
|
|
public function setPassword($password)
|
|
{
|
|
$this->password = Yii::$app->security->generatePasswordHash($password);
|
|
}
|
|
|
|
public function getId()
|
|
{
|
|
return $this->id;
|
|
}
|
|
|
|
/**
|
|
* ---------------------------------------
|
|
* 获取密码干扰字符串
|
|
* @return string
|
|
* ---------------------------------------
|
|
*/
|
|
public function getAuthKey()
|
|
{
|
|
return $this->salt;
|
|
}
|
|
|
|
/**
|
|
* ---------------------------------------
|
|
* 验证
|
|
* @param string $authKey
|
|
* @return bool
|
|
* ---------------------------------------
|
|
*/
|
|
public function validateAuthKey($authKey)
|
|
{
|
|
return $this->getAuthKey() === $authKey;
|
|
}
|
|
}
|