일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- High DPI
- 그누보드
- 소셜로그인 연동해제
- 투명 윈도우
- opencv web
- 콘솔만들기
- 구글 소셜로그인
- 윈도우 단축키
- 화면 녹화
- aruco
- 영상처리
- opencv.js
- 스크린 녹화
- 투명윈도우
- Qt 캡쳐
- OpenCV
- High DPI 적용
- 투명창
- KMS 인증
- 코스톰 윈도우
- mailer
- QT
- 셀프인테리어
- 관리자 메일발송
- 목공
- 코너 라운드 윈도우
- Qt 버그
- 오피스 KMS 인증
- Qt 관리자 권한
- qt 스타일시트
- Today
- Total
IT 알쓸신잡
그누보드에서 소셜 로그인 연동 해제 [네이버] 본문
그누보드에서 카카오 소셜 로그인 연동 해제에 이어 네이버 소셜 로그인 연동 해제를 알아볼까 합니다.
2023.03.08 - [Development] - 그누보드에서 소셜 로그인 연동 해제 [카카오]
그누보드에서 소셜 로그인 연동 해제 [카카오]
그누보드에서 소셜 로그인 적용 테스트 중, 회원 탈퇴 시 소셜 로그인 연동 해제를 시켜줘야 하는데 DB에서는 삭제가 되지만 연동은 해제가 안되더군요... 확인은 탈퇴 후 재가입 시 사용자에게
swmaster.tistory.com
이전 글을 보셨으면,
www/plugin/social/includes/functions.php 파일에,
social_member_link_delete 함수에서 DB에 소셜 계정 정보를 삭제 후, unlink 함수 호출이 되는 부분이 들어가 있을겁니다.
1. Naver.php 에 unlink 함수 만들기 |
www/plugin/social/Hybrid/Providers/Naver.php 파일에 아래와 같이 unlink 함수를 만들어 줍니다.
function unlink($code)
{
$params = array(
"grant_type" => "delete",
"client_id" => $this->api->client_id,
"client_secret" => $this->api->client_secret,
"access_token" => $this->api->access_token,
"service_provider" => $code
);
$response = $this->request($this->api->token_url, $params, $this->api->curl_authenticate_method);
$unlink_responseArr = json_decode($response, true);
return $unlink_responseArr;
}
request 함수에 호출하는 url은 소셜 로그인 시 호출하는 token_url을 그대로 사용하면 되고,
$params의 구성이 중요합니다.
"grant_type" => "delete" 가 연동해제 요청 핵심입니다.
client_id, client_secret 은 소셜로그인 등록 시 받은 값이고,
access_token 은 소셜 로그인 요청 시 받은 것이고,
service_provider 는 Naver 가 되겠죠.
private function request($url, $params=false, $type="GET")
{
if(Class_exists('Hybrid_Logger')){
Hybrid_Logger::info("Enter OAuth2Client::request( $url )");
Hybrid_Logger::debug("OAuth2Client::request(). dump request params: ", serialize( $params ));
}
$this->http_info = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT , $this->api->curl_time_out);
curl_setopt($ch, CURLOPT_USERAGENT , $this->api->curl_useragent);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->api->curl_connect_time_out);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->api->curl_ssl_verifypeer);
//--------------------------------------------변경-------------------------------------------------------------
//curl_setopt($ch, CURLOPT_HTTPHEADER, $this->api->curl_header);
curl_setopt($ch, CURLOPT_HTTPHEADER , array("Authorization: Bearer " . $this->api->access_token));
//-------------------------------------------------------------------------------------------------------------
if ( $this->api->curl_proxy ) {
curl_setopt( $ch, CURLOPT_PROXY, $this->curl_proxy);
}
if ( $type == "POST" ) {
curl_setopt($ch, CURLOPT_POST, 1);
if ($params) curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($params) );
}
$response = curl_exec($ch);
if(Class_exists('Hybrid_Logger')){
Hybrid_Logger::debug( "OAuth2Client::request(). dump request info: ", serialize(curl_getinfo($ch)) );
Hybrid_Logger::debug( "OAuth2Client::request(). dump request result: ", serialize($response ));
}
$this->http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$this->http_info = array_merge($this->http_info, curl_getinfo($ch));
curl_close ($ch);
return $response;
}
request 함수는 curl 방식의 통신을 통해 네이버에 전송을 하구요.
카카오와 동일하게 request 함수에서 CURLOPT_HTTPHEADER 값은 access_token을 직접 Array 형태로 지정하도록 합니다.
2. 결과 확인 |
$unlink_responseArr = json_decode($response, true);
echo "<script>alert('$unlink_responseArr[result]');</script>";
json_decode를 통해 결과값을 정리하면, 카카오와 다르게 result가 넘어오는군요.
성공 시에는 success 입니다^^
3. 재가입 확인 |
재가입 시 아래와 같이 동의하기 화면이 나오는군요. 연동 해제가 잘 된것을 확인할 수 있습니다.
다음에는 구글 소셜 로그인 연동 해제 기능을 넣어보도록 하겠습니다.
'Development' 카테고리의 다른 글
그누보드 회원가입 시 관리자에게 메일 발송하기 (0) | 2023.04.03 |
---|---|
그누보드에서 소셜 로그인 연동 해제 [구글] (0) | 2023.03.15 |
그누보드에서 소셜 로그인 연동 해제 [카카오] (0) | 2023.03.08 |
Qt 에서 관리자 권한으로 실행되는 실행파일 만들기 (0) | 2023.03.08 |
Qt 에서 High DPI 적용 (0) | 2023.03.07 |