[네이버 아이디로 로그인]시 "중복방지를 위해 아이디 길이 다 입력받기" 적용기
[소셜로그인 플러그인 1.5]을 이용하여, 네이버아이디로 로그인을 사용중 문제가 발생하여, 한별아빠 님의 조언을 빌어 수정하여 보았습니다.
소셜로그인 플러그인 1.5 : http://amina.co.kr/bbs/board.php?bo_table=skin_amina&wr_id=150&sst=as_download&sod=desc&sop=and&page=1
발생했던 문제 : 사용자의 로그인시 다른 사람 정보로 로그인된다는 컴플레인
원인 : 네이버에서 넘겨주는 고유번호중 18자리만 잘라, "n_고유번호18자리"로 아이디를 생성하기 때문에 중복발생
(한별아빠님의 조언 : http://amina.co.kr/bbs/board.php?bo_table=apms_qa&wr_id=44484&page=2)
해결방법 : 네이버에서 넘겨주는 고유번호를 모두 사용하기로 함. 더 늦기전에.
해결순서(한별아빠님 조언)
1. 이건 그누의 DB 기본속성이 20자로 되어 있어서, DB의 테이블에서 mb_id 필드 속성을 20에서 255로 일일이 다 변경해야 합니다. 그래서 수정하게 되면 손 봐야 할 곳이 아주 많습니다.
-> DB각 테이블의 mb_id 속성을 VARCHAR( 20 )에서 VARCHAR( 255 )로 일일이 찾아서 변경함
(약 30몇개의 테이블들 + 이미 생성된 게시판이 많다면 수정할 테이블 숫자는 그 게시판 숫자만큼 늘어남)
2. phpmyadmin 의 모든 테이블에서 mb_id 필드를 255로 변경하고 나면, /adm/sql_write.sql 파일도 열어서 mb_id 를 255로 변경해 주셔야 합니다.
-> 앞으로 게시판을 새로 만들 때, mb_id를 VARCHAR( 255 )로 하기 위함.
3. 그런 후 /plugin/login-auth/oauth_check.php 파일을 열어서 9라인의 아래 코드를
$mb_id = $mb_gubun.substr($mb_id,0,18);
아래처럼 변경해 주시면 모든 코드를 다 반영할 수 있습니다.
$mb_id = $mb_gubun.$mb_id;
-> 소셜로그인 플러그인을 이렇게 수정하면, 이제부터 네이버 아이디로 로그인시18자리로 끊지않고, 모든 자리수를 받게 되겠지요.
해결 후 발생된 문제들에 대한 후속조치
1. 쪽지가 오지 않는 문제 : g5_memo의 me_send_mb_id,me_recv_mb_id 도 VARCHAR( 255 )로 변경.
2. 기존 가입회원 네이버 아이디로 로그인으로 새로 가입시, 기존 메일 사용 불가(정보수정시 메일 중복)
: 기존 가입회원 DB백업 후, 정보삭제(이제 어차피 로그인 안되므로)
3. 닉네임 공백시 정보수정 불가 : 환경설정에서 변경가능일 0일로 수정하여 사용자가 직접 수정하도록 함(아니면 최초 닉네임 넣을 때 공백제거해도 될 듯)
4. 포인트 되살리기 : 새로 네아로로 가입한 사람 요청시 백업된 DB확인 후, 되살려 줌.
5. 주문서 연결하기 : 새로 네아로로 가입한 사람 문의시, g5_shop_cart / g5_shop_order의 mb_id 변경하여 연결
이상 네이버 아이디로 로그인시 받는 아이디 숫자를 늘이는 과정과 이 과정에서 생겼던 문제들을 정리해봤습니다.
혹시 이와 비슷한 일이 있으신 분 참고가 되실까하여...
네이버 아이디로 로그인 사용하신 회원이 300명쯤 되는데, 그 중 한 분이 자신은 로그인 안되고, 다른 사람의 정보가 보인다하여, 적용하게 되었습니다.
제가 수정하면서 뭐 빠뜨린 거나, 미비한 부분 보이시면 알려주시면 감사하겠습니다.
이와 관련하여 다른 문제 발생하면 또 글 수정해두겠습니다^^