2012-06-14 3 views
0

Я разрабатываю веб-сайт с использованием struts2 и hibernate в качестве задней части. На многих сайтах после регистрации, ссылка будет отправлена ​​на ваш адрес электронной почты и после нажатия на то, что регистрация будет завершена. Я хочу эту функцию на своем веб-сайте, но я не знаю, как это сделать и как это работает? Мне нужен пример ...Как проверить почту во время регистрации?

+0

Это слишком широкий вопрос для SO.В принципе, у вас есть форма, представленная на ваш серверный код, генерирующая уникальный токен для регистрации, создание записи с флагом «ожидающий ожидания» или аналогичным в вашей базе данных (включая токен), тогда вы отправляете электронное письмо (возможно, через Java Mail API), содержащий токен на адрес электронной почты. Вы показываете страницу, где они могут предоставить токен. Они следуют ссылке или копируют и вставляют токен на страницу и отправляют вместе с их регистрационной информацией. Тот факт, что они поставили токен и их данные для входа, говорит вам, что они получили электронное письмо, и это они. –

+0

Это не имеет никакого отношения к struts2 –

ответ

2

Я никогда не сталкивался со стойками, но в основном вы могли бы отправить электронное письмо со ссылкой, которая направляется на определенную страницу. Когда пользователь подписывается на ваш сайт, вы можете сохранить, среди прочего, адрес электронной почты пользователя, отметку времени регистрации, а также ключ (например, хэш электронной почты и пароля).

Затем вы создаете ссылку и включаете электронную почту и ключ в строку запроса. После того, как пользователь нажимает на ссылку, на вашей странице вы делаете чек, чтобы убедиться, что пользователь все еще находится в пределах некоторого временного интервала (необязательно), и что указанное письмо соответствует указанному ключу (который вы сохранили в базе данных).

Если адрес электронной почты и ключ совпадают, активируйте учетную запись.

+0

Я бы предложил использовать случайные ключи. По крайней мере используйте секретный ингредиент (-> соль) в хешах, иначе злоумышленник, который знает, как вы вычисляете ключи, тоже может вычислить ключи и не сможет получать электронное письмо. Помимо этого, обычно делается проверка электронной почты. – user1252434

+0

@ user1252434: Я согласен с вашим решением. Я просто хотел дать некоторый базовый, тривиальный пример, который мог бы запустить OP в правильном направлении. – npinti

+0

спасибо npinti за предложение ur. Я только что закончил отправку URL-адреса по почте. но я понятия не имею, как шифровать и расшифровывать URL. может помочь мне –

1

Это широкий вопрос, но я отвечаю на основе проверки

1. Вы должны страницу регистрации с формой, например /signup.jsp
2. После основных полей и проверки электронной почты, генерировать код xyzcode для этого письма,
3. Отправить сообщение электронной почты пользователя, используя почтовый сервер со ссылкой на вашу страницу проверки ссылок, как /validate.jsp?code=xyzcode (настройка почтового сервера и отправки по электронной почте выходит за рамки ответа)
4. На validat e.jsp отметьте код и подтвердите электронную почту с помощью этого кода, иначе сообщите соответствующее сообщение об ошибке.

+0

спасибо, что я сделал в своем проекте, он хорошо работал –

+0

вы можете принять/проголосовать, если вам это нравится. – mtariq

+0

и лучше вы создадите случайный токен, поэтому вам не нужно шифровать токен. – mtariq

0

Есть несколько подходов, но я предполагаю, тот, который будет легко и в соответствии со стандартом ..

In user tableadd extra column as Status [который может принимать два значения либо активным или неактивным]

create one more table(emailauthentication) where columns will be (key,emaiId).. 

Теперь то, что у нужно сделать после того, как пользователь нажмет «отправить» с регистрационными данными ... gnerate динамический ключ .. может быть timestamp + emailId (или что-то динамическое и уникальное) и создать запись в таблице пользователя со статусом как неактивным и создать запись в таблице проверки подлинности электронной почты с помощью этого сгенерированный ключ и emaiId..после создания записи генерируют URL-адрес, который может быть как

<a href="doAuthenticationForUser?authenticationId='dynamicKey'"/>Click to authenticate</a> 

Теперь, когда пользователь щелкает этот URL, то в классе действий или услуг для этого AuthenticationId найти EMAILID и сделать статус колонки как активный ..

+0

спасибо за добрый повтор, я сделал это. –

0

Это правда, это довольно большой, чтобы Ответ на вопрос.
Я знал одну ссылку, на которую есть лучший ответ, заданный BalusC
Это ссылка: better answer.
Я реализовал в своем проекте. Надеюсь, эта ссылка поможет другим.
Спасибо за чтение.