от
Мне нужно настроить аутентификацию JWT для моего приложения Yii2. Сама аутентификация работает нормально, токен анализируется, и я могу читать его данные в моей модели User. Но проблема в том, что мне нужно сравнить эти данные с реальным пользователем в моей БД. Итак, у меня есть этот метод в модели User, которая расширяет ActiveRecord
public static function findIdentityByAccessToken($token, $type = null) {
    $user = User::findOne(['ID' => 1]);
    die(json_encode($user));
}
Это очень просто, просто чтобы увидеть, что он находит пользователя. Это не так и всегда возвращает это:   { "ID": нулевой, "Userlogin": нулевой, "UserPass": нулевой, "userNicename": нулевой, "USEREMAIL": нулевой, "userUrl": нулевой, "userRegistered": нулевой, "userActivationKey": нулевой,» UserStatus ": нулевой," DisplayName ": нулевая} Данные не заполнены. Но если я сделаю то же самое в любом контроллере, вот так
class TokenController extends ActiveController
{
    public $modelClass = 'app\models\User';

    public function actionFind(){
        return User::findOne(['ID' => 1]);
    }
}
Это прекрасно работает, и я получаю объект User с правильными данными. Возможно ли получить пользователя не из класса ActiveController?              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Ну, я не знаю точно, что не так с этой строкой здесь
die(json_encode($user));
Но на самом деле он находит и заполняет пользователя, и я могу получить к нему доступ через
Yii::$app

поэтому я могу также слепо сравнить его идентификатор и пароль с реальными здесь
    
...