네이버 로그인에 대해 문의드려요 채택완료
네이버 로그인에는 문외한이라서 이제 막 배우고 있습니다.
http://sir.kr/data/editor/2412/2948688603_1734144868.8665.jpg" />
위의 사진처럼 신청했구요. 아직 승인요청은 하지 않은 상태입니다.
사이트에서 네이버로그인을 클릭하면 브라우져에 네이버 로그인이 되어있으면 바로 아래 그림으로 내려가더군요..
http://sir.kr/data/editor/2412/2948688603_1734144943.6667.jpg" />
회원가입을 클릭하면 위의 내용데로 회원가입이 되더라구요...
확인해 보면 아래그림과 같구요...
http://sir.kr/data/editor/2412/2948688603_1734144991.6906.jpg" width="100%" />
[문의]
1. mb_name은 메일의 아이디로 갖고 오는거 같은데요. 이걸 실명으로 입력되게 하는 법은 없나요?
2. 네아로신청시 회원휴대전화 및 성별에 체크했는데요.. 왜 디비 저장시에는 mb_hp, mb_sex 필드에 저장이 안되나요? 저장할 수 잇는 방법이 있다면 좀 알려주세요.
3. 로그인 플러스가 있던데요.. 현재 그누5 v5.6.2에서도 플러스도 사용가능한가요?
질문이 좀 많습니다...ㅠㅠ
이제서야 네아로를 적용하려다보니 모르는게 넘 많네요...
고수님들 좀 알려주세요~~~~~~~~~~
답변 2개
★ '네아로'는 "테스트용 클라이언트 ID"를 주지 않으니,
. . . 네이버 API 승인요청이 완료되지 않은 상태에서는 ~ (승인 처리는 1~3일)
- 네이버 API 응답 형식에 맞는 JSON 데이터를 생성하고,
이를 응답으로 가정하여 개발을 진행하여 보세요.
* 예제
</p>
<p>// 네이버 API 응답 Test_Data
$mockResponse = json_encode([
"id" => "123456789",
"name" => "소수리꼬",
"email" => "sosuriggo'골뱅이'naver.com",
"mobile" => "aaa-bbbb-cccc",
"gender" => "M"
]);</p>
<p>// Test_Data를 실제 API 응답처럼 사용
$response = json_decode($mockResponse, true);</p>
<p>$mb_name = $response['name']; // "소수리꼬"
$mb_email = $response['email']; // "sosuriggo'골뱅이'naver.com"
$mb_hp = $response['mobile']; // "aaa-bbbb-cccc"
$mb_sex = $response['gender']; // "M"</p>
<p>
. . .
- '회원이름' 대신 '네이버 아이디'가 로드된 것은 API 응답 처리 과정에서
response.id(고유 아이디)를 잘못 매핑했을 가능성이 있습니다.
* mb_name 필드에 response.name 값을 저장
$response = json_decode($apiResponse, true);
$mb_name = $response['name']; </p>
<p>
- 네이버 로그인 API에서 response.mobile과 response.gender 필드는 (폰번호, 성별)
사용자가 네이버 로그인 동의 화면에서 추가 동의를 하지 않으면 제공되지 않습니다.
* PHP 코드에서 해당 값이 null인지 확인하고,
동의되지 않은 경우 경고 메시지를 추가하거나 동의를 유도하는 플로우를 만드세요.
</p>
<p>if (isset($response['mobile'])) {
$mb_hp = $response['mobile'];
} else {
$mb_hp = null;
}</p>
<p>if (isset($response['gender'])) {
$mb_sex = $response['gender'];
} else {
$mb_sex = null;
}</p>
<p>
- 로그인 플러스 사용 가능할 것입니다.
* 기존 네이버 로그인 API 코드에 추가적인 수정이 필요할 것입니다.
* OTP와 함께 로그인 요청
</p>
<p>// OTP 파라미터 추가
$requestUrl = "<a href="https://nid.naver.com/oauth2.0/authorize";" target="_blank" rel="noopener noreferrer">https://nid.naver.com/oauth2.0/authorize";</a>
$requestUrl .= "?client_id=" . $client_id;
$requestUrl .= "&response_type=code";
$requestUrl .= "&redirect_uri=" . urlencode($redirect_uri);
$requestUrl .= "&state=" . $state;
$requestUrl .= "&auth_type=OTP"; // 플러스 추가</p>
<p>
♣ 요약
- response.name 필드를 올바르게 저장하도록 수정
- 폰 번호, 성별 가져오기 ;
네이버 로그인 동의 항목 설정을 필수로 지정하고,
응답 데이터에서 값을 확인하는 로직을 추가.
- "로그인 플러스"를 그누보드5.6.2에서도 충분히 연동 가능하며,
네이버 개발자 센터에서 활성화 후 필요한 API 요청을 수정.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인