'error', // 'message' => '이메일이 전달되지 않았습니다.' // ]); // exit; // } // // Descope 설정 // $management_key = 'K32l5ORmzy32OvaaPvpdZsMY3JmKQb7a3vvrl10PgjlJUGk3K7EssMH3uW5VGQSbrgtEdPj'; // 예: P2w0N5fY1K... // $project_id = 'P2wON5fy1K6kyia269VpeIzYP8oP'; // 예: PRJ-xxxx // // API URL // $url = 'https://api.descope.com/v1/mgmt/user?loginId=' . urlencode($email); // // CURL 호출 // $ch = curl_init($url); // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // curl_setopt($ch, CURLOPT_HTTPHEADER, [ // "Authorization: Bearer {$project_id}:{$management_key}", // "Content-Type: application/json" // ]); // // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // $response = curl_exec($ch); // $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // $curl_error = curl_error($ch); // curl_close($ch); // $response_json = json_decode($response, true); // // 처리 로직 // if ($http_code === 200 && isset($response_json['user'])) { // // 아이디가 이미 존재 (중복) // echo json_encode([ // 'status' => 'duplicate', // 'message' => '이미 등록된 이메일입니다.' // ]); // } elseif ($http_code === 404) { // // 아이디가 존재하지 않음 (사용 가능) // echo json_encode([ // 'status' => 'ok', // 'message' => '사용 가능한 이메일입니다.' // ]); // } else { // // 기타 오류 // echo json_encode([ // 'status' => 'error', // 'message' => 'Descope API 호출 실패', // 'http_code' => $http_code, // 'error_detail' => $response_json, // 'curl_error' => $curl_error // ]); // } // exit; ?> 'error', 'message' => '이메일이 전달되지 않았습니다.' ]); exit; } // Descope 설정 $management_key = 'K32l5ORmzy32OvaaPvpdZsMY3JmKQb7a3vvrl10PgjlJUGk3K7EssMH3uW5VGQSbrgtEdPj'; $project_id = 'P2wON5fy1K6kyia269VpeIzYP8oP'; // API URL $url = 'https://api.descope.com/v1/mgmt/user?loginId=' . urlencode($email); // CURL 호출 $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer {$project_id}:{$management_key}", "Content-Type: application/json" ]); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $curl_error = curl_error($ch); curl_close($ch); $response_json = json_decode($response, true); // ================================ // 존재하는 사용자일 때 // ================================ if ($http_code === 200 && isset($response_json['user'])) { $user = $response_json["user"]; // 비밀번호 여부 $hasPassword = $user["providerInfo"]["email"]["password"] ?? false; // 추가정보 입력 여부 (completeForm) $completeForm = $user["customAttributes"]["completeForm"] ?? false; // ------------------------- // 미완성 사용자 감지!! // ------------------------- if (!$hasPassword && !$completeForm) { echo json_encode([ 'status' => 'incomplete', 'message' => '미완성 사용자입니다. 추가정보 입력이 필요합니다.', 'email' => $email ]); exit; } // 완성된 사용자 → 재가입 불가 echo json_encode([ 'status' => 'duplicate', 'message' => '이미 등록된 이메일입니다.' ]); exit; } // ================================ // 신규 사용자 (404) // ================================ if ($http_code === 404) { echo json_encode([ 'status' => 'ok', 'message' => '사용 가능한 이메일입니다.' ]); exit; } // ================================ // 기타 오류 // ================================ echo json_encode([ 'status' => 'error', 'message' => 'Descope API 호출 실패', 'http_code' => $http_code, 'error_detail' => $response_json, 'curl_error' => $curl_error ]); exit; ?>