Автор оригинала: David Wong.
Недавно Yii2 Функция автоматического входа в систему, найдена, даже если включена Yii2 Функция автоматической настройки входа в систему, браузер закрыт, откройте браузер снова или в состоянии без входа в систему.
В онлайн-запросах в принципе нет такой же ситуации.
Исходный код входа в систему запроса:
protected function sendIdentityCookie($identity, $duration)
{
$cookie = new Cookie($this->identityCookie);
$cookie->value = json_encode([
$identity->getId(),
$identity->getAuthKey(),
$duration,
], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
$cookie->expire = time() + $duration;
Yii::$app->getResponse()->getCookies()->add($cookie);
}Печать cookie Обнаружение переменных не имеет проблем с содержимым. Нет проблем скопировать код на другие контроллеры для его выполнения.
Просмотр в браузере, Yii2 Настройки SessionID Обычно файлы cookie просто не настраиваются здесь успешно.
Поскольку система в порядке, а браузер в порядке, то возникает проблема с процессом передачи.
Позже было обнаружено, что первоначальный вызов был в процессе. $модель->войти() После метода входа в систему я вывожу его напрямую json Данные в браузер, и есть выход Этот метод напрямую предотвращает продолжение выполнения контроллера.
Итак, yii 2 Выполнение для выхода Везде делается, что приводит к информации заголовка заголовок Он также не был передан в браузер. Таким образом, браузер вообще не получил его. php Настройка файлов cookie Приказ.
резюме : Yii2 Войдите в систему или вам нужны настройки cookie Контроллер, никогда не выходите или не умирайте Прямое использование если еще Судья, не прерывайте исполнение.
Оригинал: “https://developpaper.com/yii2-automatic-login-cookie-failure-problem-solution/”