Сайт на yii2, одновременно к нему обращается другой сайт, с двумя и более запросами. Естественно в запросах нет кукисов, и я пытаюсь установить куку, а перед установкой проверяю, есть ли кука
$cookies = Yii::$app->request->cookies->getValue('name');
И когда приходит сразу более одного запроса, естественно проверка не чего не выдает и кука устанавливается(переустанавливается) столько раз, сколько приходит запросов и value для нее устанавливается на последнем запросе.
value делается из
md5(microtime() . rand(0, 1000) );
поэтому она разный
Как сделать так чтобы, она устанавливалась только на первом запросе а остальные игнорировала?
Повторюсь, я захожу на сайт, отправляется сразу три запроса для подгрузки трех блоков и на приеме в бэкенде я пытаюсь установить куку ОДИН раз, но перед тем делаю проверку, на ее существование. Поскольку запросы пришли одновременно в их заголовках нет куки и проверка не помогает, там нечего не находится и поэтому кука присваивается несколько раз
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),
]));
}
}