На самом деле это не должно быть уникальным для этого пользователя.
Возможно, вы можете, например, как часть вашего сброса пароля, указать имя пользователя или адрес электронной почты. В этом отношении ваш токен сброса должен быть уникальным для этого пользователя.
Кроме того, поскольку вам не нужно искать токен в списке известных хороших токенов для всех пользователей, это намного быстрее.
Например, с уникальным уникальным ключом для сброса пароля я либо должен использовать некоторые дополнительные детали, такие как пользовательскую информацию, чтобы отличить этот токен от других, или я должен каким-то образом искать все известные токены.
С уникальным пользовательским/хэш-кодом мне нужно только проверить, что код для этого пользователя действителен. Для сравнения вы обычно найдете поиск массива, и даже поиск в хэш-таблице займет гораздо больше времени.
Например, если пользователь не инициировал сброс пароля, их внутренний пользователь может выглядеть так, как если бы они были. Обратите внимание, в этом примере мы разрешаем последний один запрос сброса пароля (не несколько):
User.getName() = "Bob"
User.getUserName() = "Bob5412"
User.resetPasswordRequestedTime() = null
User.resetPasswordToken() = null
or
User.resetPasswordRequestedTime() = 1482628217
User.resetPasswordToken() = "f7de43859d244439b101df4e02cc4e17"
Теперь мне нужно только, чтобы проверить, если маркер был действителен для запрошенного пользователя. Больше не нужно беспокоиться о «уникальном глобальном уровне».
В моем коде может потребоваться, чтобы любой запрос на сброс пароля был заполнен пользователем в течение 4 часов, поэтому, если они появились, после этого я просто проигнорирую их запрос, не проверив ничего.
Да, они должны быть уникальными и использоваться только один раз. Если один и тот же пользователь идет и пытается использовать один и тот же ключ и не должен/не должен быть разрешен, то это может быть проблемой. –
Плюс, если вы используете ключ AI/PK от db (что вам нужно), то использование уникального ключа вместе с AI/PK сделает его еще более уникальным «для пользователя». Кстати, я вернулся к вопросу, чтобы узнать, есть ли больше активности; был еще один комментарий, но он был удален. Единственное, что я видел больше, - это мой одобренный комментарий. Я думаю, что вместе с этим один довольно (должен) ответить на вопрос. Вы можете пинговать меня, если хотите, так как я теперь оставил вопрос навсегда. Наслаждайтесь Xmas, * cheers * –