Всем привет! Делаю свой первый проект на yii2, на сайте есть авторизация и функция "запомнить", которая сохраняет авторизацию на 30 дней. Чтобы заработал remember-me, в модель user (которая extends ActiveRecord implements IdentityInterface) я добавлял функции из IdentityInterface:
public static function findIdentity($id)
{
return self::findOne($id);
}
public function getId()
{
return $this->User_ID;
}
public static function findIdentityByAccessToken($token, $type = null)
{
return static::findOne(['access_token' => $token]);
}
public function getAuthKey()
{
return $this->authKey;
}
public function validateAuthKey($authKey)
{
return $this->authKey === $authKey;
}
И соответственно при логине:
Yii::$app->user->login($login_model->getUser(),$login_model->rememberMe());
// Где rememberMe :
public function rememberMe()
{
return $this->rememberMe ? 3600*24*30 : 0;
}
// из модели login
Может ли кто-нибудь подсказать, где и в каком виде, при таком раскладе, yii2 хранит сессию?
И можно ли безболезненно перенести всю эту магию на DbSession? Стоит ли вообще это делать?
И можно ли при каком-нибудь из этих раскладов реализовать функционал "Пользователь был онлайн/последний раз был на сайте"? Или проще сразу использовать Redis?