2012-06-14 3 views
0

저는 struts2를 사용하여 웹 사이트를 개발하고 있으며 백엔드로 동면시킵니다. 가입 후 많은 사이트에서 귀하의 이메일로 링크가 전송되며 클릭하면 등록이 완료됩니다. 내 웹 사이트에서이 기능을 사용하고 싶지만이 작업을 수행하는 방법을 모르고 있으며 어떻게 작동합니까? 나는 이것을 수행하는 데 필요한 예제 ....가입하는 동안 이메일을 확인하는 방법은 무엇입니까?

+0

이것은 너무 광범위한 질문입니다.기본적으로 서버 측 코드에 양식을 제출하고, 등록을위한 고유 한 토큰을 생성하고, 데이터베이스에서 토큰을 포함한 "보류 중"플래그 또는 유사한 레코드를 만든 다음 전자 메일을 보냅니다. Java Mail API)를 사용하여 전자 메일 주소에 토큰을 저장합니다. 그들이 토큰을 제공 할 수있는 페이지를 보여줍니다. 그들은 링크를 따라 또는 토큰을 복사하여 페이지에 붙여 넣고 로그인 정보와 함께 전송합니다. 그들이 토큰을 제공했다는 사실과 로그인 정보는 이메일을 받았으며 그 사실을 알려줍니다. –

+0

이것은 struts2와 아무런 관련이 없습니다. –

답변

2

나는 스트럿츠를 사용 해본 적이 없지만, 기본적으로 특정 페이지로 연결되는 링크가 포함 된 전자 메일을 보낼 수 있습니다. 사용자가 웹 사이트에 가입하면 사용자의 이메일 주소, 등록 타임 스탬프 및 키 (예 : 이메일 및 비밀번호의 해시 일 수 있음)를 저장할 수 있습니다.

그런 다음 링크를 구성하고 전자 메일과 키를 쿼리 문자열에 포함시킵니다. 사용자가 링크를 클릭하면 페이지에서 사용자가 일정 기간 (선택 사항) 내에 있는지와 주어진 이메일이 데이터베이스에 저장된 특정 키와 일치하는지 확인합니다.

이메일과 키가 일치하는 경우 계정을 활성화하십시오.

+0

무작위 키를 사용하는 것이 좋습니다. 적어도 해시에 비밀 성분 (-> salt)을 사용하십시오. 그렇지 않으면 키 계산 방법을 알고있는 공격자가 키를 계산할 수 있으므로 전자 메일을받을 필요가 없습니다. 그 외에도 전자 메일 검사가 일반적으로 수행되는 방법입니다. – user1252434

+0

@ user1252434 : 귀하의 솔루션에 동의합니다. 저는 OP가 올바른 방향으로 시작될 수있는 몇 가지 기본적이고 사소한 예를 제공하기를 원했습니다. – npinti

+0

ur 제안을 주셔서 감사합니다 npinti. 나는 지금 막 우편물에 URL을 보내는 것을 완료했다. 하지만 난, URL을 암호화하고 암호를 해독하는 방법을 전혀 모른다. 도움이 될 수 있습니다 –

1

이 넓은 질문입니다 그러나 나는이

1. 당신은 기본 필드 및 이메일 확인 후 /signup.jsp
2. 코드 xyzcode를 생성하는 형태의 예와 가입 페이지를 필요로 검증 기준으로 응답하고있다 /validate.jsp?code=xyzcode (메일 서버 설정 및 보내는 이메일처럼 링크를 확인 페이지에 링크가 포함 된 메일 서버를 사용하여이 이메일, 사용자 이메일로
3. 전자 메일 보내기가 범위를 벗어 대답)
4. 유효한 유효 기간 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).. 

이제 [비활성 또는 Active 중 두 개의 값을 취할 수있는] 무엇 유를 사용자가 등록 데이터로 제출을 클릭하면됩니다 ... 동적 키 생성 ... timestamp + emailId (또는 동적이고 고유 한 것) 일 수 있으며 비활성 상태로 사용자 테이블에 레코드를 만들고이와 함께 전자 메일 인증 테이블에 레코드를 만듭니다. 생성 된 키와 emaiId .. 레코드가 생성 된 후에는 URL을 생성합니다. 사용자가이 authenticationId에 대한 작업 클래스 또는 서비스 요청 EMAILID을 찾아 열 상태 등의 활성화에 다음이 URL을 클릭 할 때 그것은 사실이다

+0

친절한 리플레이에 감사드립니다. –

0

.. 이제

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

처럼 될 수는 상당히 큰 질문에 답하세요. better answer가 :
나는 여기에 링크가 BalusC
에 의해 주어진 가장 좋은 대답을 가지고 하나 개의 링크를 알고 있었다.
저는 프로젝트에서 구현했습니다. 이 링크가 다른 사람들에게 도움이되기를 바랍니다.
읽어 주셔서 감사합니다.

관련 문제