Как я могу сгенерировать временный URL-адрес в игровой среде?

Я использую игровую среду и Java для создания веб-приложения. У меня есть функция сброса пароля в моем приложении. Я не хочу генерировать временные пароли и отправлять их пользователям по электронной почте. Вместо этого я хочу сгенерировать временный URL-адрес, действительный в течение x дней, и отправить его пользователю по электронной почте, где он/она сможет использовать его для сброса своего пароля. Я не уверен, как я могу реализовать это в Play Framework или даже возможно ли это в Play.

[Обновление] Я хочу знать, как добавить временный URL-адрес в файл маршрутов приложений. Я даже не уверен, что это правильное место для добавления временного URL. Как создать ссылку, я думаю, что знаю, как это реализовать, но как добавить ее в свое приложение, я не уверен, что мой вопрос достаточно ясен, извините за это


person Ubaidah    schedule 12.11.2014    source источник


Ответы (1)


Просто добавьте два поля, хранящиеся в БД, в вашу модель пользователя: String token и Date tokenValidityDate.

Когда пользователь запрашивает изменение пароля, установите новый token в базу данных, которая совершенно уникальна, т.е. 123,6svv376d.foo.bar.loooong.hash, где 123 — идентификатор пользователя, а остальные после запятой — случайный хэш, рассчитанный с помощью секрета приложения. в поле tokenValidityDate добавьте окончательную дату, когда токен будет действителен, скажем, сейчас + 1 час.

затем создайте абсолютную ссылку, т.е.:

http://domain.com/password-reset/123,6svv376d.foo.bar.loooong.hash для отправки по электронной почте.

Получив такой запрос, вы можете:

  • если пользователь с данным токеном найден и его/ее tokenValidityDate не меньше, теперь -> форма отображения для установки нового прохода и обработки, как обычно.
  • если пользователь с данным токеном найден, но уже поздно, перенаправить на общую форму с "Напомнить пароль" + флеш-сообщение: Your token expired, start again, также установить token и tokenValidityDate для этого пользователя равными нулю.
  • если пользователь с данным токеном НЕ найден, перенаправить на общую форму с «Напомнить пароль» без какого-либо сообщения.
person biesior    schedule 12.11.2014