Рубрики
Uncategorized

Решение Проблемы Сбоя файлов Cookie для автоматического входа в систему YII2

Автор оригинала: 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/”