네이버 로그인에 대해 문의드려요
본문
네이버 로그인에는 문외한이라서 이제 막 배우고 있습니다.
아직 감이 안잡혀 다시 문의드립니다.
필요정보는 위의 사진과 같이 신청해서 승인신청했는데 추가설명자료 요청이 없는 거 보니 승인이 난 상태인것 같아 보여요.
---------
회원가입을 클릭하면 위의 내용데로 회원가입이 되더라구요...
확인해 보면 아래그림과 같구요...
------
------
[문의]
1. mb_name은 메일의 아이디로 갖고 오는거 같은데요. 이걸 실명으로 입력되게 하는 법은 없나요?
2. 네아로신청시 회원휴대전화 및 성별에 체크했는데요.. 왜 디비 저장시에는 mb_hp, mb_sex 필드에 저장이 안되네요... 이걸 신청한 정보데로 저장하려면 어떤 파일을 어떻게 수정해줘야 하나요?
질문이 좀 많습니다...ㅠㅠ
이제서야 네아로를 적용하려다보니 모르는게 넘 많네요...
고수님들 좀 알려주세요~~~~~~~~~~
답변 2
1. 'mb_name'에 '메일 아이디'가 들어오는 문제 ;
반드시 실명이 필요한 서비스라면 “회원 이름”을 필수로 설정하시고,
사용자의 자율적 선택에 맡기거나 실명이 필수가 아닌 경우라면
추가(선택) 항목으로 설정하시면 됩니다. [가능하면, 사용자의 자율적 선택(추가)에 맡기시길]
- 콜백 URL(예: callback.php)에서 name 필드를 따로 받아와야 합니다.
실제 이름이 들어가게 됩니다.
*한글 이름이 깨지거나 인코딩 문제가 생길 수 있으므로,
DB 테이블(mb_name 컬럼)이 UTF-8로 설정되어 있는지 확인하시기 바랍니다.
2. 휴대전화(mb_hp), 성별(mb_sex)이 저장되지 않는 문제 ;
네이버 API 설정 화면에서 “휴대전화번호”와 “성별”은
‘필수’가 아닌 ‘추가’ 항목으로 설정해야 합니다. https://policy.glitter.kr/qa_php/Naver_API_Approval_Request-1.png
즉 “추가 선택 항목”란에 체크되어 있어야 합니다. ('필수'에 선택 되였네요)
사용자가 동의하지 않을 경우
해당 값은 제공받지 못할 수 있다는 점을 고려하셔야 합니다.
- 네이버 로그인 과정에서 사용자가 “성별”과 “휴대전화번호” 제공에 동의를 한다면,
콜백 페이지 등에서 아래와 같은 방식으로 데이터를 DB에 매핑, 저장할 수 있습니다.
DB 스펙에 맞게 문자열 가공이 필요합니다.
★ 네이버에서는 가끔 민감 정보(성별, 휴대전화 등) 동의를 거부할 수 있습니다.
사용자가 동의하지 않았다면 해당 데이터가 오지 않을 수 있으니,
이를 대비한 예외처리 코드가 반드시 필요합니다.
★ 휴대전화번호를 저장하는 mb_hp 컬럼은
국제번호 지원을 위해 VARCHAR(20) 이상(권장 30)으로 설정하고,
+(국가번호), -(하이픈), 공백 등 특수문자가 포함될 수 있음을 고려해
일관된 포맷(예: 숫자만 혹은 +82 포함 형태)을 정해야 합니다.
★ 성별 컬럼인 mb_sex는 CHAR(1) 또는 VARCHAR(1)로 M, F만 저장해도 충분하나,
한글로 ‘남’, ‘여’ 등을 쓰려면 인코딩 정책에 따라 최대 CHAR(3) 정도로 잡을 수 있으며,
실제 값은 네이버에서 내려오는 형태(M, F 등)와 서비스 정책에 맞춰 매핑하십시오.
또한 필요 시 ‘무응답’, ‘기타’ 선택지를 고려할 수 있으므로 확장 가능성을 열어두고,
MySQL에서는 테이블을 utf8mb4 인코딩으로 생성해
한글 및 이모지 등 다양한 문자가 깨지지 않도록 설정합니다.
예시로 VARCHAR(30)의 mb_hp, CHAR(1)의 mb_sex를 둔 뒤,
CREATE TABLE 시 ENGINE=InnoDB와 DEFAULT CHARSET=utf8mb4를 지정하면,
해외번호를 포함한 휴대전화와 성별 정보를 안정적으로 저장하고 조회할 수 있습니다.
*아래는 MySQL 기준의 간단한 예시입니다.
- 실제 테이블 이름과 엔진, 인코딩 설정은 프로젝트 환경에 맞게 조정하십시오.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
★ 아래의 예시는 [정식버전]그누보드(영카트) 5.6.4를 참고함
*콜백 로직 (bbs/register_form_update.php)
*유효성 검사 함수 (lib/register.lib.php)
*예외 처리 로직
bbs/register_form_update.php에서 동의하지 않은 경우 메시지를 출력.
/plugin/social/Hybrid/Porviders/Naver.php 에서 해당 이름 가져오는 부분을 확인해 보셔야 하며
mb_hp,mb_sex는 해당 정보를 제대로 가져오는지 보시고 해당 부분에 커스텀 해서 적용해서 처리해 주셔야 합니다.
참고하셔서 디버깅 해서 수정적용을 해야 하는 부분입니다.