Comments 17
Если есть возможность, сессии лучше хранить в Redis или аналогичных.
Строка 24 не до конца ( с mc копировали? :) )
Да и как то одного типа придерживаться, а то в одном месте есть ":", а в другом нету.
Да и как то одного типа придерживаться, а то в одном месте есть ":", а в другом нету.
Очевидное решение.
Обычно использую что-то похожее, только вместо «DELETE FROM one_time_auth » делаю UPDATE — сохраняю нужную информацию о человеке (дата, IP и т.д.) и ставлю переключатель типа active enum(y,n) в 'n', чтобы сессия действительно была одноразовой.
И в вашем случае в DELETE просится первичный ключ (банально ID с autoincrement), запрос выполнится быстрее.
И в вашем случае в DELETE просится первичный ключ (банально ID с autoincrement), запрос выполнится быстрее.
token и есть PK, смотрите на схему.
token можно сделать обычным ключом (чисто теоретически даже с md5 возможен повтор), добавить первичный ключ типа int (с autoincrement) и для delete использовать его. Что-то мне подсказывает, что на больших таблицах поиск по короткому int будет заметно быстрее поиска по строке token
Пускай будет повтор — я ловлю эксепшн и пытаюсь добавить новый случайный токен: строки 29-36.
По поводу поиска — на примерно нескольких десятках миллионов разница настолько несущественная, что я бы не стал всё таки вводить суррогатные данные, когда у нас есть такие удобные естественные.
По поводу поиска — на примерно нескольких десятках миллионов разница настолько несущественная, что я бы не стал всё таки вводить суррогатные данные, когда у нас есть такие удобные естественные.
> чисто теоретически даже с md5 возможен повтор
Чисто практически даже у четвертинки от MD5 повторы — единицы на миллионы.
Так что длину токена можно уменьшить сильно, если не требуется огромного числа одновременных ссылок с авторизацией.
Чисто практически даже у четвертинки от MD5 повторы — единицы на миллионы.
Так что длину токена можно уменьшить сильно, если не требуется огромного числа одновременных ссылок с авторизацией.
А вообще с UPDATE клёвая идея. Но цель этого поста выражена в PS и PPS. Это не готовое решение, это просто информация к размышлению и утверждение о том, что «рандомный токен» — это хорошо :-)
Разумеется. Я просто поделился своей идеей-дополнением.
И да, в реальной жизни не всегда нужен 32-символный ключ. Даже 8-символьный ключ подобрать брутфосом практически невозможно, зато ссылка будет выглядеть короче и симпатичнее.
И да, в реальной жизни не всегда нужен 32-символный ключ. Даже 8-символьный ключ подобрать брутфосом практически невозможно, зато ссылка будет выглядеть короче и симпатичнее.
Sign up to leave a comment.
Входите! Аутентификация без логина и пароля, v2