Если у меня несколько пользователей, которым необходимо верифицироваться с помощью одного и того же кода, то правильно ли это? Существует ли какая-то опасность?
Я знаю минимум 2 инструмента, в которых генерация токенов осуществляется рандомно, а насколько мне известно, рандомность != уникальность.
для одного токена отп должен быть одинаков.
для разных токенов отп должен быть разным.
немного не понял
если разные люди обладают тем же самым токеном, это сводит ценность отп практически к нулю.
почему? Ведь если я проверяю токен, отталкиваясь от пользователя, то выстрелить в ногу не получится.
Возможно, мой вопрос покажется для Вас глупым, но в этой теме я не сведущ.
вообще все. Я предполагаю, что Вы неправильно меня поняли. Под токеном я как раз и подразумеваю one-time password, который можно использовать как для SMS, так и для того, чтобы включать его в ссылки. (все зависит от того, какой он)
а зачем разным пользователям иметь одинаковый токен?
возможно, что незачем, но я все равно не понимаю, почему.
Давайте разберем вопрос в контексте токенов, представляющих из себя шестизначный код.
Скажем, произойдет такая маловероятная ситуация, что в момент жизни токена 555555 был сгенерирован второй, идентичный ему, но уже для другого пользователя.
Каждый из этих пользователей вводит этот токен (или невалидный конкретно для самого пользователя, в хранилище введенный может существовать), после чего из хранилища, отталкиваясь от этого пользователя, извлекается запись и происходит необходимая проверка (просрочен, не просрочен и т.д).
DevMan, теперь понял. спасибо.
это конечно не касается вопроса и Вы вправе не отвечать, но как бы Вы реализовали систему, нуждающуюся в верификации?
Скажем, нам нужно подтверждение регистрации и подтверждение номера телефона, то есть тут будут задействоваться два варианта OTP: токен и код (я знаю, что код - тот же токен, но не знаю, как назвать вариант токена, в котором используются все символы, возможно Вы мне и с этим моментом подскажите). Токен для ссылки, которая будет отправлена по email, код - SMS.
Я видел, что некоторые для ссылок используют JWT, а для кодов Redis, где ключ - номер телефона, а значение - сам код.