Я создал приложение Yii 2. В моей базе данных есть пользователь таблицы, имеющий следующие поля: firstName
, lastName
, username
и password
, 'authKey'.Yii 2 Данные интерфейса идентификации теряются после перенаправления
С помощью инструмента Gii я создал модель для пользовательской таблицы. Чтобы реализовать функции входа в систему, я расширил этот класс из IdentityInterface, и я реализовал все методы. Вот список метода:
public static function findIdentityByAccessToken($token, $type = null)
{
throw new NotSupportedException();
}
public static function findIdentity($id)
{
Admin::findOne($id)
}
public function getId()
{
return this->id;
}
public function getAuthKey()
{
return $this->authKey
}
public function validateAuthKey($authKey)
{
return $this->authKey = $authKey;
}
public static function findByUsername($username)
{
return static::find(array('username'=>$username));
}
public function validatePassword($password) {
return $this->password == $password;//Just for demonstration purposes
}
Я изменил свой конфигурационный файл (компонент пользователя равное этому):
'user' => [
'identityClass' => 'app\models\Admin',
'enableAutoLogin' => true,
],
В LoginController
, после строки
if($model->load(Yii::$app->request->post()) && $model->login()) {
печатает
var_dump(Yii::$app->user->identity);exit;
, а настройки vlaues устанавливаются нормально. Как только перенаправить пользователя на другую страницу
var_dump(Yii::$app->user->identity); exit;
равно null
.
Может кто-нибудь объяснить мне, что происходит?
ПРИМЕЧАНИЕ: Следующие сообщения не являются полезными:
yii2 losing user identity after login redirect
Yii2 user identity loss after page redirection
У вас есть общедоступное свойство 'public $ enableSession = true;' в вашем пользовательском классе? –
Это свойство по умолчанию установлено в true – MrD
Только если ваш класс расширяет исходный класс, я думаю .. Я могу попробовать ... –