@dev123

Как отправлять определенную куку в каждом ответе от сервера?

Новые версии Google Chrome сейчас начали активно требовать куку SameSite и если ее нет, то куки не принимаются с сайта.
Есть сайт на Yii 2.0.13. Как сделать так, чтоб в каждый ответ с сервера добавлялась кука SameSite? Нужно это сделать как-то централизованно в одном месте. В каждый action добавлять вручную эту куку ну совсем тупо.
Знаю что в последних версиях Yii2 эта фича уже реализована. Но обновлять сайт до последней версии не хочу - т.к. он просто на просто может перестать нормально работать (уже пробовал, сыпались ошибки).
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 1
kimono
@kimono
Web developer
Вам нужно отследить событие после обработки запроса и добавить куку в ответ в конфигурации приложения:

$config = [
    'components' => [],
    'modules' => [],
    'on afterRequest' => function (Event $event) {
        Yii::$app->response->cookie->add(new Cookie([
            'name' => 'cookie_name',
            'value' => 'cookie_value'
        ]));
    }
];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы