Что делать, если совпадут два случайных токена (Str::random Laravel или через нативный Php)?
Здравствуйте, коллеги.
У меня в проекте есть поле api_token (которое я еще выставил, чтобы уникальное было), которое генерируется с помощью Str::random(60). Я вот задумался, могут ли токены совпасть? Ведь Str::random не проверяет на уникальность.
Стоит ли бороться с этим? Или одну ошибку стоит отдать на съедение?
Добавьте уникальный префикс. Например microtime.
Даже без префикса вероятность коллизии ничтожна. В крайнем случае получите исключение из базы или от валидатора.
Str::random действительно может выдавать неуникальные значения и в 60 символов. И добавка времени может не спасти (например при инсертах в сидинге/тестах). С Str::uuid() таких проблем не возникало. Str::uuid()->toString()