我需要为我的Yii2应用设置JWT身份验证。身份验证本身可以正常工作,令牌已解析,我可以在用户模型中读取其数据。但是问题是我需要将此数据与数据库中的真实用户进行比较。因此,我在扩展ActiveRecord的User模型中有了此方法
public static function findIdentityByAccessToken($token, $type = null) {
$user = User::findOne(['ID' => 1]);
die(json_encode($user));
}
这很简单,只是看到它找到了一个用户。它不会,并且始终返回以下内容:
{“ id”:null,“ userLogin”:null,“ userPass”:null,“ userNicename”:null,“ userEmail”:null,“ userUrl”:null,“ userRegistered”:null,“ userActivationKey”: null,“ userStatus”:null,“ displayName”:null}
未填充数据。但是,如果我在任何控制器中都这样做,就像这样
class TokenController extends ActiveController
{
public $modelClass = 'app\models\User';
public function actionFind(){
return User::findOne(['ID' => 1]);
}
}
它很好用,我得到了用正确数据填充的User对象。 是否可以从ActiveController类之外获取用户?
答案 0 :(得分:0)
好吧,die(json_encode($user));
我不知道这行到底出了什么问题
但是它实际上找到并填充了用户,以后我可以通过
Yii::$app->user->identity
所以我也可以在这里盲目地将其ID和密码与真实密码进行比较