跳转到主要内容

중요한 보안 선언문

보안 우선 원칙: 타사 애플리케이션을 개발하고 배포할 때 보안이 가장 중요한 고려 사항입니다. 사용자 데이터와 인증 프로세스의 안전을 보장하려면 아래 보안 원칙을 엄격히 따라야 합니다.
  1. 프론트엔드 JavaScript 코드에 client_secret을 절대 노출하지 마십시오.
  2. OAuth 인증 코드를 토큰으로 교환하는 과정은 반드시 서버 측에서 처리해야 합니다.
  3. 보호된 사용자 리소스에 대한 모든 접근은 백엔드 API 프록시를 통해 이루어져야 합니다.
  4. 모든 OAuth 통신은 HTTPS를 사용하여 보호해야 합니다.
위 보안 원칙 중 하나라도 위반하면 심각한 보안 취약점이 발생할 수 있습니다!

📋 목차

  1. 개요
  2. 시작하기
  3. OAuth2 인증 흐름
  4. API 참조
  5. SDK 및 코드 예제
  6. 보안 모범 사례
  7. 자주 묻는 질문
  8. 기술 지원

개요

저희는 OAuth2 표준을 기반으로 한 개방형 API를 제공하여 타사 애플리케이션이 사용자의 기본 정보 및 계정 잔액에 안전하게 접근할 수 있도록 합니다. 저희 OAuth2 서비스를 통해 귀하의 애플리케이션은 다음을 수행할 수 있습니다:
  • 🚀 원클릭 로그인: 사용자는 다시 등록할 필요 없이 자동으로 로그인하여 진정한 원활한 경험을 제공합니다.
  • 👤 사용자 정보 얻기: 사용자의 기본 프로필(사용자 이름, 이메일 등)에 접근합니다.
  • 💰 계정 잔액 보기: 사용자의 계정 잔액을 실시간으로 확인합니다.
  • 🔄 충전 리디렉션: 사용자를 저희 충전 페이지로 안내하여 계정을 충전하도록 합니다.
  • 🔐 자동 토큰 갱신: 내장된 리프레시 토큰 메커니즘으로 원활한 토큰 갱신을 통해 사용자 경험을 향상시킵니다.

시작하기

1. 개발자 계정 등록

먼저 저희 시스템에 개발자 계정을 등록해야 합니다.

2. OAuth 애플리케이션 생성

개발자 콘솔에서 OAuth 애플리케이션을 생성합니다:
API 호출 예제
예제 응답:
중요한 보안 알림:
  • client_id는 프론트엔드에서 사용할 수 있습니다 (공개 정보)
  • client_secret은 서버 측에서만 사용해야 하며 브라우저에 절대 노출되어서는 안 됩니다.
  • client_secret을 환경 변수에 저장하고 코드에 하드코딩하지 마십시오.

3. 리디렉션 URI 구성

리디렉션 URI가 다음 요구 사항을 충족하는지 확인하십시오:
  • HTTPS 프로토콜 사용 (프로덕션 환경)
  • 서버 엔드포인트를 가리킴 (프론트엔드 페이지가 아님)
  • 도메인이 등록되어 있고 접근 가능함
  • 경로는 콜백을 처리하는 API 엔드포인트에 특정됨

OAuth2 인증 흐름

보안 흐름 다이어그램

단계별 지침

1단계: 사용자를 인증으로 안내

프론트엔드 페이지에 로그인 버튼을 추가합니다. 클릭 시 서버 측 인증 엔드포인트로 리디렉션합니다:
프론트엔드 코드 - 리디렉션만 담당

2단계: 서버 측 인증 핸들러

서버에 인증 핸들러를 구현합니다:
서버 측 코드

3단계: 인증 콜백 처리 (서버 측)

서버 측 인증 콜백 핸들러

4단계: 프론트엔드에서 사용자 정보 가져오기

프론트엔드에서 API 프록시를 통해 사용자 정보 가져오기
서버 측 API 프록시

API 참조

1. 인증 엔드포인트

GET /api/oauth2/authorize 사용자를 OAuth2 인증으로 안내합니다. 매개변수: 보안 요구 사항:
  • redirect_uri는 등록된 주소와 정확히 일치해야 합니다.
  • state는 서버 측에서 생성된 임의의 문자열이어야 합니다.
  • HTTPS를 사용해야 합니다 (프로덕션 환경).
범위 설명:
  • profile: 사용자의 기본 정보(사용자 이름, 이메일)에 접근
  • balance: 사용자의 계정 잔액에 접근

2. 토큰 엔드포인트

POST /api/oauth2/token
보안 경고: 이 엔드포인트는 반드시 서버 측에서만 호출해야 하며, 프론트엔드에서는 절대 호출해서는 안 됩니다!
두 가지 시나리오에 사용됩니다:
  1. 인증 코드를 액세스 토큰으로 교환
  2. 리프레시 토큰을 사용하여 새 액세스 토큰 얻기
인증 코드 부여 매개변수: 리프레시 토큰 부여 매개변수: 예제 응답:

3. 사용자 정보 엔드포인트

GET /api/oauth2/userinfo 사용자의 기본 정보 및 계정 잔액을 가져옵니다. 요청 헤더:
header
예제 응답:
response

SDK 및 코드 예제

JavaScript SDK

직접 사용할 수 있는 완전한 JavaScript SDK를 제공합니다:

OAuth 콜백 페이지

/oauth/callback.html 파일을 생성합니다:

Node.js 백엔드 예제

보안을 강화하기 위해 백엔드에서 client_secret을 처리하는 것이 좋습니다:

보안 모범 사례

1. 클라이언트 시크릿 보호

  • ✅ 권장: 백엔드 서버에 client_secret 저장
  • ❌ 피해야 할 사항: 프론트엔드 JavaScript에 client_secret 노출

2. State 매개변수 유효성 검사

3. HTTPS 사용

  • 프로덕션 환경에서는 반드시 HTTPS를 사용해야 합니다.
  • 콜백 URI는 HTTPS를 사용해야 합니다.
  • 모든 API 요청은 HTTPS를 사용합니다.

4. 토큰 보안 저장

5. 오류 처리

자주 묻는 질문

Q1: 진정한 원클릭 로그인 경험을 어떻게 구현하나요?

A: 인증 URL에 auto_authorize=true 매개변수를 추가하기만 하면 됩니다. 사용자가 로그인하면 추가 확인 단계 없이 자동으로 인증이 부여됩니다:

Q2: 토큰이 자동으로 갱신되나요?

A: 예, 저희 SDK에는 자동 토큰 갱신 기능이 내장되어 있습니다:
  • 액세스 토큰: 2시간 유효, 만료 5분 전에 자동 갱신
  • 리프레시 토큰: 30일 유효, 새 액세스 토큰을 얻는 데 사용
  • 원활한 갱신: 모든 API 호출은 만료된 토큰을 자동으로 확인하고 갱신합니다.
  • 실패 시 재시도: API가 401 오류를 반환하면 자동으로 토큰 갱신을 시도하고 재시도합니다.
리프레시 토큰도 만료된 경우에만 사용자가 다시 로그인해야 합니다.

Q3: 어떤 사용자 정보를 얻을 수 있나요?

A: 인증된 범위에 따라 다음을 얻을 수 있습니다:
  • profile 범위: 사용자 이름, 이메일
  • balance 범위: 계정 잔액 정보

Q4: OAuth 통합을 어떻게 테스트하나요?

A:
  1. 개발 중에는 HTTP localhost를 사용하여 테스트합니다.
  2. 저희가 제공하는 테스트 도구를 사용하여 인증 흐름을 확인합니다.
  3. 브라우저의 개발 도구에서 네트워크 요청을 확인합니다.

Q5: 어떤 프로그래밍 언어가 지원되나요?

A: 저희 OAuth2 API는 표준이며 모든 주요 프로그래밍 언어를 지원합니다:
  • JavaScript/Node.js
  • Python
  • PHP
  • Java
  • C#/.NET
  • Go
  • Ruby

Q6: 사용자가 인증을 어떻게 철회할 수 있나요?

A: 사용자는 저희 사용자 센터 > 인증 관리 페이지에서 타사 앱 인증을 철회할 수 있습니다.

마지막 업데이트: 2026-06-01