Генерация URL-адресов активации в Java EE 6 - PullRequest
7 голосов
/ 02 февраля 2011

Я занимаюсь разработкой веб-приложения с использованием веб-профиля Java EE 6.Я хочу отправить новому пользователю ссылку для активации его учетной записи.Как мне это реализовать?Я использую JSF2.Есть ли какие-либо спецификации или рекомендуемый способ сделать это?

Ответы [ 2 ]

16 голосов
/ 02 февраля 2011

Я работал над проектом, который требовал от пользователя подтверждения своего электронного адреса для активации своей регистрации. Процесс генерации ключей был таким:

Создание ключа

  1. Создать столбец verification_key в users таблице, содержащей уникальный ключ проверки для пользователя.
  2. Используйте SHA256 хеш вашего уникального имени пользователя (в данном случае email-id) с солью в качестве пароля.
  3. Преобразовать хэш в base64 и сохранить в verification_key этого пользователя. Это будет уникально (для практических целей я не буду вдаваться в вероятность столкновения).

итак, нижняя строка, key = Base64(Hash256(uniqueUserName+"."+password))

......

примечание : Кстати, ничто не ограничивает вас в использовании пароля в качестве соли. Вы можете просто создать произвольную строку на лету как соль.

Проверка

  1. Поскольку мы знаем, что verification_key уникален, получите key из параметра запроса и найдите соответствующую строку.
  2. Если найдено, установите verification_key как null (это также уменьшит вероятность столкновения, если таковое имеется) и приведет пользователя на «успешно проверенную страницу».
  3. Если файл не найден, перейдите на страницу "уже активирован / ключ-не найден / страница 401".
1 голос
/ 02 февраля 2011

URL-адрес активации создает впечатление о том, что программный сервис обрабатывает «сервисный» запрос.

Хорошие кандидаты для реализации этой услуги включают сервлеты, которые будут выполнять активацию / проверку пользователя и перенаправлять на страницу успеха JSF

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...