Приложения отправляют электронные письма для проверки учетных записей пользователей или пароля reset. Я считаю, что это так, как должно быть, и я прошу ссылки и реализации.
Если приложение должно отправить ссылку в электронном письме для проверки адреса пользователя, в соответствии с моим представлением ссылка и обработка приложения ссылки должны иметь следующие характеристики:
- Ссылка содержит nonce в URI запроса (
http://host/path?nonce
). - По ссылке (GET) пользователю предоставляется форма, необязательно с номером.
- Пользователь подтверждает ввод (POST).
- Сервер получает запрос и
- проверяет входные параметры,
- выполняет изменение,
- и делает недействительным значение nonce.
Это должно быть правильно для HTTP RFC по безопасным и идемпотентным методам.
Проблема заключается в том, что этот процесс включает в себя одну дополнительную страницу или действие пользователя (пункт 3), которое считается излишним (если не бесполезным) для многих людей. У меня возникли проблемы с представлением такого подхода для сверстников и клиентов, поэтому я прошу внести свой вклад в эту более широкую техническую группу. Единственный аргумент, который я имел против пропустить шаг POST, - это возможная предварительная загрузка ссылки из браузера.
- Есть ли ссылки на эту тему, которые могли бы лучше объяснить эту идею и убедить даже нетехнического человека (лучшие практики из журналов, блогов,...)?
- Существуют ли ссылочные сайты (предпочтительно популярные и со многими пользователями), которые реализуют этот подход?
- Если нет, существуют ли документированные причины или эквивалентные альтернативы?
Спасибо,
Kariem
Детали, сохраненные
Я сохранил основную часть короткой, но чтобы уменьшить слишком много дискуссий вокруг деталей, которые я намеренно упустил, добавлю несколько предположений:
- Содержание сообщения не является частью этого обсуждения. Пользователь знает, что ей нужно щелкнуть ссылку, чтобы выполнить действие. Если пользователь не реагирует, ничего не произойдет, что также известно.
- Нам не нужно указывать, почему мы отправляем по почте пользователя, а также политику связи. Мы предполагаем, что пользователь ожидает получить электронное письмо.
- У nonce есть временная метка истечения срока действия и напрямую связана с адресом электронной почты получателей, чтобы уменьшить дубликаты.
Примечания
С OpenID и т.п. обычные веб-приложения освобождаются от внедрения стандартного управления учетными записями пользователей (пароль, электронная почта...), но некоторые клиенты хотят "своих пользователей"
Как ни странно, я еще не нашел удовлетворительного вопроса и ответа. Что я нашел до сих пор: