Не работают сессии из-за session_regenerate_id()

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Gozoro
Сообщения: 2
Зарегистрирован: 2021.04.21, 18:12

Не работают сессии из-за session_regenerate_id()

Сообщение Gozoro »

Всем привет.
Такая проблема. После авторизации на внешнем auth-сервере редиректом перехожу на сайт с yii2-приложением с ключом доступа.

Проверяю ключ. Ключ валидный. выполняю:

Код: Выделить всё


Yii::$app->session->open();

if(Yii::@app->user->login($identity))
{
	$_SESSION['my_key'] = "my_data";
}

Однако при обновлении страницы опять ухожу на авторизацию - сессия не запоминается.

Сервер имеет стандартные настройки.
Сессии хранятся в файлах на сервере.
В приложении стоит Yii2.0.40.
PHP 5.5.9

Авторизация через куки на сервере приложения отключена! Смысл в том, что если нет рабочей сессии, то пользователь редиректом должен перейти на auth-сервер, где уже либо есть кука, либо пользователь должен ввести пароль в форме.

В результате не рабочей сессии на сервере приложения, браузер циклически гоняется редиректами туда-сюда, пока не отвалится с ошибкой "Циклическое перенаправление на странице".

Опытным путем нашел проблему в том, что в методе User::switchIdentity() запускается регенерация сессии. Если закомментировать метод регенерации, то сессии волшебным образом начинают работать.

Я не нашел возможность отключить регенерацию сессии через конфиг приложения. Как предложение - добавить соответствующий ключ для этого.

Если не комментировать, то для решения проблемы помогает вставка функции session_write_close() перед методом регенерации.

Код: Выделить всё

session_write_close();
$session->regenerateID(true);


Что это, баг в фреймоврке или на сервере не хватает какой-то настройки?
Gozoro
Сообщения: 2
Зарегистрирован: 2021.04.21, 18:12

[РЕШЕНО] Не работают сессии из-за session_regenerate_id()

Сообщение Gozoro »

Разобрался с сессиями.
Оказалось в глюках виноват Firefox и 1.3G кук.
Удалил все куки, все заработало как часы.
Видимо файл с куками сломался после очередного обновления FF.
Ответить