Yii2 DbSession потерян после перенаправления, 90% времени - PullRequest
0 голосов
/ 30 мая 2018

Мой логин отлично работал с сессиями PHP.Я попытался переключиться на движок DbSession, но вход в систему больше не будет работать, так как после перенаправления страницы сеанс пуст.

Вот рабочий процесс:

  1. Пользователь вводит свой идентификатор пользователя и нажимает отправить для публикации данных
  2. Проверка работоспособности (я тестировал) и новый идентификационный файл cookie создается с ключом sess = XXXX (протестировано сжурнал непосредственно перед перенаправлением).
  3. $ _SESSION заполняется пользовательскими данными (тестируется с журналом непосредственно перед перенаправлением)
  4. Страница перенаправляется с новым файлом cookie ответа .
  5. Страница пароля загружается, и cookie-файл запроса имеет то же значение XXXX (протестировано с журналом сразу после перенаправления + в инструментах разработчика Chrome).
  6. Сеанс теперь содержит только

    [__ 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", она работает отлично, даже если обе таблицы имеют одинаковую схему в двух базах данных.

...