fr05t1k / esia

Компонент для авторизации на портале "Госуслуги" (ЕСИА)
http://fr05t1k.github.io/esia
142 stars 68 forks source link

Функция uniqid() возвращает не уникальные значения #7

Closed i--storm closed 7 years ago

i--storm commented 7 years ago

Файл OpenId.php Строки 216, 217

$messageFile = $this->tmpPath . DIRECTORY_SEPARATOR . uniqid(); $signFile = $this->tmpPath . DIRECTORY_SEPARATOR . uniqid();

У меня на php 5.6 функция uniqid() возвращает одинаковые значения для обоих вызовов. Это вызывает ошибку в строке 245 unlink($messageFile); т.к. файл с таким именем уже удален предыдущей командой.

Если идти пошагово дебаггером, значения возвращаемые uniqid() отличаются. Видимо при работе без дебаггера не успевает поменяться системное время. Надо или добавить паузу между вызовами, или использовать другой генератор стучайных строк

fr05t1k commented 7 years ago

Можешь добавить uniqid(rand()) и проверку на наличие файла.