Здравствуйте.
Делаю простой интернет-магазин. После авторизации пользователя сессия почему-то очищается. Я в LoginForm.php немного изменила код, чтобы через var_dumb() посмотреть, сохраняется ли в сессию id пользователя.
public function login()
{
session_start();
$this->_user = User::findByUsername($this->username, $this->password);
$_SESSION['user_id'] = $this->_user->getId();
var_dump($_SESSION['user_id']);
if ($this->_user) {
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
} else {
return false;
}
}
Возымело интересный эффект, потому как после вывода мне id (он таки сохраняется) я снова перезагружаю страничку и я залогиниваюсь. Но если убрать var_dumb(), то сессия стирается.
Подскажите, пожалуйста, как решить эту проблему.
Настройки конфига фронтенда:
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true],
],
Yii::$app->session->open(); в методе init() контроллера, а не внутри login() - тогда сессия будет открываться и работать до процесса залогинивания.abstract class BaseController extends \yii\web\Controller { и наследейте все контроллеры от него: class SiteController extends BaseController. Собственно в нем и лучше завести метод init() со стартом сессии (Yii::$app->session->open();), тогда сессия будет работать во всех контроллерах гарантированноСовременные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости