심심해서(?) DSN에서도 오픈아이디를 쓸 수 있도록 한 번 만들어 보았습니다.
http://database.sarang.net/openid.php
상호 총각과 둘이서 수다를 떨면서, 각종 문제점들을 함께 풀었는데,
설계는 다음과 같습니다.
1. 오픈아이디 인증이 정상적으로 끝나면,
2. 오픈아이디 서버에서 넘겨주는 email 주소를 보고 해당 email 정보가 이곳 DSN 회원정보로 등록되어있지 않다면, 다른 절차 없이 자동 회원가입을 합니다. 이때, DSN 로그인 ID는 오픈아이디로 자동할당됩니다.
3. email 정보가 이미 있다면, 먼저 그 email을 사용하는 회원이 이미 다른 오픈아이디를 사용하고 있다면, 로그인을 중지하고, 기존 오픈아이디로 로그인하라는 안내페이지를 보여줍니다.
4. 그 email 을 사용하는 회원이 아직까지 사용할 오픈아이디를 등록하지 않았다면, 먼저 그 오픈아이디를 사용하는 다른 회원이 있는지 확인합니다.
5. 해당 오픈아이디를 사용하는 회원이 있다면, 이 경우는 오픈아이디 서버에서 넘겨주는 email과 이곳에 등록된 email이 틀린 경우라서, 오픈아이디 서버의 email을 바꾸어야 이곳에서 해당 id로 로그인이 가능하다는 안내페이지를 보여줍니다.
6. 이상 모든 경우가 아니라면, 기존 dsn 회원 정보를 보여주고, 이 회원의 로그인 비밀번호를 한 번 물어봅니다. 그래서, 일치하면, DSN 회원과 로그인을 시도한 오픈아이디를 통합합니다. 이 작업은 딱 한 번 만 할 수 있습니다.
---------------
좀 복잡한데, 여튼 작업이 끝나고 나니, 문제점이 하나 생겼는데,
기존 DSN ID에 대해서, 딱 한 번 만 오픈아이디를 설정할 수 있고, 이렇게 설정되면 더 이상 바꿀 수도 없어져 버립니다.
풀지 못한 숙제입니다.
결국 회원정보 수정 페이지에서 오픈아이디 변경 항목이 있어야할 것 같은데, 이 작업은 다음에 해야할 것 같습니다.
회원정보 수정 페이지를 보완하면,
공지사항란에 오픈아이디 로그인 방식으로 바꾼다고 공지를 하고,
그 공지를 거쳐 이곳 로그인 방식을 바꾸겠습니다.
괜찮은 아이디어나, 보완할 점이 있으면 댓글로 남겨주세요.
|