카카오 소셜 로그인은 사용자 편의성을 높여주는 간편한 로그인 기능을 제공하지만, 로그인 과정에서 수집할 수 있는 동의 항목에 대한 확인이 자동으로 제공되지 않습니다 . 특히 마케팅 동의와 같은 항목은 사용자가 동의했는지 여부를 추적하고 싶을 때 별도의 처리가 필요합니다.
이 글에서는 카카오 로그인 콜백에서 동의 여부를 확인할 수 없는 경우, 카카오 API를 활용해 동의 상태를 확인하고 WordPress usermeta에 저장하는 방법을 설명하겠습니다.
1. Kakao API를 이용한 마케팅 동의 확인
카카오 로그인 시 user_id와 같은 고유 식별자 값을 얻을 수 있습니다. 이 값을 이용해 별도로 카카오 API에 요청을 보내 사용자의 마케팅 동의 상태를 확인할 수 있습니다.
아래 코드는 user_id와 user_kakao_id 값을 받아서 카카오 서비스 약관 API에 요청을 보내 마케팅 동의 여부를 확인하고, 그 결과를 WordPress의 usermeta에 저장하는 예제입니다.
/**
* kakao 로그인 마케팅 동의 usermeta 저장
*/
public function schoolmoa_marketing_check($user_id , $user_kakao_id) {
$service_app_admin_key = 'your_service_app_admin_key';
$query_args = array(
'target_id_type' => 'user_id',
'target_id' => $user_kakao_id,
'tags' => 'your_tags',
);
$url = add_query_arg( $query_args, $url );
$headers = array(
'Authorization' => 'KakaoAK ' . $service_app_admin_key,
);
$args = array(
'method' => 'GET',
'headers' => $headers,
'timeout' => 30,
);
$response = wp_remote_request( $url, $args );
if ( !is_wp_error( $response ) ) {
$response_code = wp_remote_retrieve_response_code( $response );
$response_body = wp_remote_retrieve_body( $response );
$data = json_decode( $response_body, true );
if (isset($data['service_terms'][0]['agreed']) && $data['service_terms'][0]['agreed'] == true) {
update_user_meta( $user_id, 'your_meta_key', 'yes' );
} else {
update_user_meta( $user_id, 'your_meta_key', 'no' );
}
}
}
2. 코드 설명
- Admin Key 설정: 카카오 API의 Admin Key를 Authorization 헤더에 설정하여 API 호출 권한을 인증합니다.
- 요청 파라미터 구성: target_id_type을 user_id로 설정하고, target_id에 로그인 시 얻은 사용자 고유 ID (user_kakao_id)를 할당합니다. 추가적으로 필요한 태그가 있을 경우 tags를 지정합니다.
- API 호출: wp_remote_request 함수를 사용해 GET 요청을 보냅니다. 응답이 오류가 아닌 경우 response_body에서 JSON 데이터를 파싱합니다.
- 마케팅 동의 상태 확인 및 저장: service_terms 배열의 첫 번째 항목에 agreed 필드가 있는지 확인하고, true인 경우 update_user_meta 함수를 통해 usermeta에 저장합니다.
이 방법을 사용하면 사용자 로그인 시 동의 상태를 체크하여 저장할 수 있어, 마케팅 및 기타 서비스 운영에 필요한 동의 항목 정보를 관리하는 데 도움을 줄 수 있습니다.
결론
카카오 소셜 로그인을 이용하면서 사용자 동의 여부를 체크해야 하는 경우, 위와 같은 방법으로 별도의 API 요청을 통해 필요한 정보를 손쉽게 얻을 수 있습니다
'php 워드프레스 개발' 카테고리의 다른 글
AI로 로또 번호 예측하기: 과거 당첨 데이터 기반 분석 (0) | 2024.11.07 |
---|---|
youtube api (6) | 2024.09.10 |
브라우저(디바이스) 언어 설정에 따른 리다이렉트 (8) | 2024.09.04 |
IP 기준 사용자 위치(국가) 정보 가져오기 (11) | 2024.08.23 |
절대 중복되지 않는 난수+문자열 조합 (2) | 2024.07.29 |