Как присвоить cookie через config так же как присваивается _csrf-frontend ?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Как присвоить cookie через config так же как присваивается _csrf-frontend ?

Сообщение alexa777 »

Как присвоить coockie один раз?

Я захожу на сайт, отправляется сразу три запроса для подгрузки трех блоков и на приеме в бэкенде я пытаюсь установить куку ОДИН раз, но перед тем делаю проверку, на ее существование. Поскольку запросы пришли одновременно в их заголовках нет куки, и проверка не помогает, в заголовках нечего не находится и поэтому value куки присваивается несколько раз, так как hash для каждого запроса разный и в итоге присваивается hash последнего запроса

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

public static function setCookies(){
        $cookies = Yii::$app->request->cookies->getValue('name_cookie');
        if(!$cookies){
            $set_cookies_date = (new DateTime())->modify('+1828 day')->format('d.m.Y H:i:s');
            $ip = Yii::$app->request->userIP;
            $hash = md5(microtime() . rand(0, 1000) . $ip);
            $set_cookies = Yii::$app->response->cookies;
            $set_cookies->add(new \yii\web\Cookie([
                'name' => 'name_cookie',
                'value' => $hash,
                'domain' => 'site.local',
                'expire' => strtotime($set_cookies_date),

            ]));
            
        }

 
    }
Я заметил что _csrf-frontend присваивается один раз и пришла в голову мысль что можно как то через config присвоить ее один раз.
Как это сделать?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Как присвоить cookie через config так же как присваивается _csrf-frontend ?

Сообщение samdark »

Это вполне нормальная ситуация при работе с множеством запросов. Или выстраивайте запросы в очередь или миритесь с таким поведением.
Ответить