Пытался найти это, но ничего не нашел. Требуются обсуждения или соответствующие ссылки.
Предположим, мы собираемся отправить электронное письмо, чтобы побудить пользователя войти в наше суперсоциальное веб-приложение. Цель этого письма - заставить их вернуться на сайт и еще немного пощупать, прежде чем они забудут нас, поэтому, естественно, мы хотим снизить барьер для их возвращения. Файлы cookie помогают предотвратить необходимость входа в систему каждый раз, но все же не помогают в случае, если пользователь забыл свои учетные данные. Здесь нам нужно мгновенное удовлетворение - один щелчок мыши прямо в действие, малыш. Вместо этого, почему мы не можем просто отправить пользователю хешированную форму случайно сгенерированного, чувствительного ко времени токена, который мы сохранили в БД? Если они могут вернуть этот токен на сервер, мы сможем доверять их личности.
Этот сценарий кажется безопасным, если вы правильно управляете токенами. Процесс будет примерно таким:
Перед отправкой электронного письма с напоминанием Джону Доу сгенерируйте токен случайного числа (достаточно большое число, чтобы предотвратить угадывание), срок действия которого истекает через несколько дней.
В электронном письме включите маркер URL-адрес, содержащий хешированную форму токена (возможно, xor с идентификатором пользователя).
Когда Джон Доу входит в свою электронную почту и нажимает на ссылку, сервер проверяет наличие токена в БД и то, что это не так. t истек. Если токен существует, он автоматически входит в систему на сервере.
Безопасность: мы предполагаем, что электронная почта для Джона Доу действительно принадлежит Джону Доу, хотя бы потому, что адреса электронной почты проверяются в процессе регистрации. Любой пользователь, имеющий доступ к электронной почте Джона Доу, сможет получить доступ к своей учетной записи; однако это не новость. Многие сайты уже предполагают, что учетная запись электронной почты пользователя безопасна, поскольку они реализуют функцию сброса пароля на электронную почту.
Мой поиск в Google обнаружил только один сайт, который делает это, OKCupid, сайт знакомств в Интернете. Кто-нибудь знает какие-нибудь другие сайты, которые это делают? Почему нет • более распространен мгновенный вход по электронной почте? Безопасность? Отсутствие существенной выгоды из-за дополнительной сложности?