티스토리 뷰

Daylogs/Logic

비밀번호 변경 로직

ohgyun 2009. 10. 29. 10:47
발생일: 2009.10.29

문제:
후배 P에게 아직 비밀번호 변경하기 기능이 구현이 되지 않은 시스템에 기능을 추가해보라고 했다.
그리고는 같이 네이버나 다음, 구글의 경우 어떤 식으로 로직을 처리하는지 한 번씩 찾아봤다.


해결책:
네이버는 다른 백업 메일을 가지고 있지 않아 다음과 구글만 확인해보기로 했다.

내부적으로 두 사이트 모두 전체적인 로직은 다음과 같다. (여기서는 메일을 이용해 찾는 기능만 고려했다)
   비밀번호 찾기 ---> 백업 메일로 임시비밀번호 또는 비밀번호 찾기 링크 전송
   ---> 전송받은 메일 페이지에서 비밀번호 변경 페이지로 이동
   ---> 임시비밀번호를 통해(또는 링크로 전달된 값으로 자동 설정) 비밀번호 변경


다음과 구글의 차이가 있다면, 다음과 같다.

[다음]
다음의 경우, 비밀번호 변경 요청을 하면 아래와 같이 임시비밀번호가 포함된 메일을 발송한다.

다음의 비밀번호 변경


'비밀번호 바로 변경하기' 버튼의 링크를 누르면 아래와 같이 비밀번호 변경 페이지로 이동한다.

다음의 비밀번호 변경 페이지

위 링크는 https://user.daum.net/daumuser/tempPWMail.user 형태의 주소로 언제나 접근이 가능하다.


[구글]
구글의 경우 아래와 같이 비밀번호 변경 페이지로 이동할 수 있는 링크를 준다.
이 링크에는 암호화된 코드가 포함되어 있다.

구글의 비밀번호 변경 메일

해당 링크를 통해 비밀번호 변경 페이지로 이동하면, 아래와 같은 페이지가 나온다.


GET 요청의 패러미터로 전달된 값을 통해 어떤 유저인지 파악이 가능하여,
아이디나 임시비밀번호를 넣을 필요없이 바로 비밀번호를 변경할 수 있다.
물론 잘못된 키를 입력하여 임의로 변경 페이지에 접근하려고 했을 떄에는 접근이 불가능하다.


두 방법의 로직이 거의 흡사하기 때문에 어느 쪽으로 구현하든 크게 상관은 없을 것 같다.
하지만, 개인적으로는 구글의 방법이 좋다. 아무래도 사용자 입장에서 작성할 내용이 몇 개 없으니까^^

하지만, 역시 친숙하기는 다음의 것이 훨씬 낫다.
구글 메일에서도 적어도 해당 URL에 링크를 걸어줬으면 더 좋지 않았을까 하는 생각이 든다.


* 기타 주의점
- 최초 구글 메일 변경을 시도했을 때, 내가 예전에 사용하던 메일로 임시변경 메일이 전송됐다.
  그 메일은 지금 사용할 수가 없기 때문에 "비밀번호가 잠겨버렸을까... X 됐다" 라고 생각하고 있었다. -_-;
  (구글의 경우, 메일 찾기 기능을 다시 사용하려면 1회 요청 후 24시간 이후에 할 수 있다.)
  헌데 다행히 예전 비밀번호로 접속이 가능하다.
  비밀번호 변경을 시도하기 전까지는 예전 비밀번호를 그대로 유지하는 거다...

- 중요한 것은, '임시비밀번호'가 실제 '비밀번호'는 아니라는 거다. (다음의 '임시비밀번호' 든, 구글의 '링크 키값'이든)
  임시비밀번호는 단지, 비밀번호를 변경하기 위한 통로를 제공해주는 것 뿐이다.
  혹시나 실제 비밀번호를 임시로 바꿔 그 값을 전송해주는 일이 절대로 없도록 하자.
  비밀번호는 사용자가 변경하는 거다.


반응형
댓글
공지사항