Мой логин отлично работал с сессиями PHP.Я попытался переключиться на движок DbSession, но вход в систему больше не будет работать, так как после перенаправления страницы сеанс пуст.
Вот рабочий процесс:
- Пользователь вводит свой идентификатор пользователя и нажимает отправить для публикации данных
- Проверка работоспособности (я тестировал) и новый идентификационный файл cookie создается с ключом sess = XXXX (протестировано сжурнал непосредственно перед перенаправлением).
- $ _SESSION заполняется пользовательскими данными (тестируется с журналом непосредственно перед перенаправлением)
- Страница перенаправляется с новым файлом cookie ответа .
- Страница пароля загружается, и cookie-файл запроса имеет то же значение XXXX (протестировано с журналом сразу после перенаправления + в инструментах разработчика Chrome).
Сеанс теперь содержит только
[__ flash] => Array ()
файл cookie ответа "sess" = запрос файла cookie "sess" = id в сеансовой таблице , поэтому везде один и тот же ключ, но все жеssion все еще пуст на странице паролей, 90% времени (потому что в некоторых случайных случаях сеанс все еще там, но я не могу воспроизвести его по требованию)
Я уже проверил эти вопросы, нета же проблема:
Сессия PHP потеряна после перенаправления
Сессия потеряна после перенаправления в Codeigniter
Кто-нибудь видел что-то подобное раньше?Я не могу понять, что является причиной этого.
Дополнения:
Конфигурация сеанса
'session' => [
'class' => 'yii\web\DbSession',
'name' => 'sess',
'timeout' => 3600,
'db' => 'session_db',
'sessionTable' => 'session',
],
Конфигурация Session db config
$config['components']['session_db'] = [
'class' => 'yii\db\Connection',
...
],
Действие при входе в систему
// authenticate() Just checks if the user is valid, etc
Yii::$app->user->authenticate();
// login() just calls parent::login(), sets some session values then returns !$this->getIsGuest()
Yii::$app->user->login(Yii::$app->user);
update !! Я только что заметил, что если я использую ту же базу данных вместо "db" (мой основной db) вместо "session_db", она работает отлично, даже если обе таблицы имеют одинаковую схему в двух базах данных.