시작하기

OAuth 제공자 설정 가이드

Authon에서 각 OAuth 제공자를 설정하기 위한 단계별 안내입니다. 모든 제공자에서 Client ID Client Secret을 발급받아 Authon 대시보드의 Providers 페이지에 붙여넣으세요.

리디렉션 / 콜백 URL 패턴:

https://api.authon.dev/v1/auth/oauth/redirect
중요: 모든 OAuth 제공자는 하나의 동일한 Redirect URI를 공유합니다. 제공자별 콜백 URL을 따로 사용하지 마세요.

Google

Google OAuth 2.0 설정은 Google Cloud Console.

1
console.cloud.google.com 에서 프로젝트를 선택하거나 새로 생성합니다.
2
왼쪽 메뉴에서 APIs & Services OAuth consent screen으로 이동합니다. 사용자 유형은 External을 선택하고 앱 이름, 지원 이메일, 개발자 연락처를 입력합니다.
3
APIs & Services CredentialsCreate Credentials OAuth 2.0 Client ID를 생성하고 애플리케이션 유형으로 Web application을 선택합니다.
4
Authorized redirect URIs에 Authon 콜백 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
5
Create를 눌러 생성한 뒤 팝업에 표시되는 Client ID와 Client Secret을 복사합니다.

필드 매핑:

Client IDOAuth 2.0 Client ID
Client SecretOAuth 2.0 Client Secret

요청 스코프:

openidemailprofile

GitHub

설정 경로: github.com/settings/developers.

1
SettingsDeveloper settings OAuth AppsNew OAuth App으로 이동합니다.
2
Application nameHomepage URL을 입력합니다. 예: https://yourapp.com
3
Authorization callback URL에 아래 URL을 입력합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
Register application을 누른 뒤 Generate a new client secret을 눌러 Client ID/Client Secret 값을 복사합니다.

필드 매핑:

Client IDClient ID
Client SecretClient Secret

요청 스코프:

read:useruser:email

Apple

Apple Sign In은 Services ID와 Client Secret(JWT) 생성용 개인 키가 필요합니다. 설정 경로: developer.apple.com.

참고: Apple은 두 종류의 식별자를 사용합니다: App ID (네이티브 iOS/macOS 앱용)와 Services ID (웹 로그인용). 웹에서 Sign In with Apple을 사용하려면 반드시 Services ID가 필요합니다.
1
Apple Developer Portal에서 Certificates, Identifiers & Profiles Identifiers로 이동해 App ID를 생성(또는 선택)하고 Sign In with Apple을 활성화합니다. (App ID는 네이티브 앱 로그인에 사용되며, 웹 로그인의 기반이 됩니다.)
2
같은 Identifiers 페이지에서 우측 상단 + 버튼을 눌러 새 식별자를 만듭니다. 타입 선택 시 Services IDs를 선택하고 Continue를 클릭합니다.
3
설명(예: My App Web Login)과 고유 식별자(예: com.yourapp.web)를 입력합니다. 이 식별자가 Authon에 입력할 Client ID가 됩니다. ContinueRegister를 클릭하여 생성합니다.
4
생성된 Services ID를 클릭하여 편집 화면에 들어갑니다. Sign In with Apple을 체크하고 옆의 Configure를 클릭합니다. Primary App ID를 Step 1의 App ID로 선택하고, Domains and Subdomains에 도메인을, Return URLs에 아래 URL을 입력합니다:
https://api.authon.dev/v1/auth/oauth/redirect
5
Apple Developer Portal 왼쪽 메뉴에서 Keys를 클릭한 뒤 + 버튼 또는 Register a New Key를 클릭합니다.
6
키 이름(예: Authon Sign In)을 입력하고, 아래 체크박스에서 Sign In with Apple을 체크합니다. 오른쪽의 Configure를 클릭하여 Primary App ID를 Step 1에서 만든 App ID로 선택한 뒤 Save합니다.
7
ContinueRegister를 클릭하면 키가 생성됩니다. Download를 눌러 .p8 파일을 저장합니다. 이 파일은 한 번만 다운로드 가능하므로 안전한 곳에 보관하세요. 화면에 표시되는 Key ID (10자리)도 복사해둡니다.
참고: Team ID는 Apple Developer Portal 오른쪽 상단 → 계정 이름 아래에 있는 10자리 코드입니다. 또는 Membership 페이지에서도 확인할 수 있습니다.
8
Apple은 최대 6개월 유효한 JWT를 Client Secret으로 사용합니다. 아래 스크립트에서 Team ID, Key ID, Services ID, .p8 파일 경로를 입력하여 JWT를 생성하고 Client Secret으로 입력하세요.
generate_apple_secret.py
import jwt, time

TEAM_ID     = "YOUR_TEAM_ID"        # 10-char Team ID from Apple Developer
KEY_ID      = "YOUR_KEY_ID"         # Key ID from the downloaded key
CLIENT_ID   = "com.yourapp.web"     # Your Services ID Bundle ID
KEY_FILE    = "AuthKey_XXXXXX.p8"   # Path to the .p8 private key

with open(KEY_FILE, "r") as f:
    private_key = f.read()

payload = {
    "iss": TEAM_ID,
    "iat": int(time.time()),
    "exp": int(time.time()) + 86400 * 180,  # 180 days
    "aud": "https://appleid.apple.com",
    "sub": CLIENT_ID,
}

client_secret = jwt.encode(payload, private_key, algorithm="ES256", headers={"kid": KEY_ID})
print(client_secret)

또는 아래 도구로 브라우저에서 JWT를 바로 생성할 수 있습니다. 어떤 데이터도 서버로 전송되지 않습니다:

Apple Client Secret Generatorruns in your browser — nothing is sent to any server
참고: Apple Client Secret은 최대 6개월 후 만료됩니다. 만료 전에 새 JWT를 재발급하여 Authon 대시보드에 갱신해야 합니다.
9
서버 대 서버 알림을 받으려면, Services ID 설정의 Server to Server Notification Endpoint에 아래 URL을 입력합니다:
https://api.authon.dev/v1/webhooks/oauth/apple

필드 매핑:

Client IDServices ID Bundle ID (e.g. com.yourapp.web)
Client SecretGenerated JWT string (from the script above)

Facebook

설정 경로: Meta Developers.

1
developers.facebook.com My AppsCreate App.앱 유형으로 Consumer 또는 Business를 선택합니다.
2
앱 생성 후 제품 목록에서 Facebook Login을 찾아 Set Up을 누릅니다.
3
Facebook Login Settings에서 Valid OAuth Redirect URIs에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
App Settings Basic에서 App ID와 App Secret을 복사합니다.
5
본인 외 사용자 로그인 허용을 위해 상단 토글에서 앱 모드를 Development에서 Live로 전환합니다.
6
Facebook Login → Settings에서 Deauthorize Callback URL과 Data Deletion Request URL에 아래 URL을 입력합니다:
https://api.authon.dev/v1/webhooks/oauth/facebook

필드 매핑:

Client IDApp ID
Client SecretApp Secret

요청 스코프:

public_profileemail

Instagram

Instagram OAuth는 Instagram Basic Display API (또는 최신 Instagram Graph API)를 사용하며 Meta Developers에서 함께 관리합니다.

1
developers.facebook.com My AppsCreate App.Consumer를 선택합니다.
2
앱 대시보드에서 Instagram Basic Display를 찾아 Set Up을 누른 뒤 Instagram Basic DisplayBasic Display로 이동합니다.
3
Valid OAuth Redirect URIs에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
Roles Instagram Test Users에서 테스트 유저를 추가해 개발 중 로그인 테스트를 진행합니다.
5
Instagram Basic DisplayBasic Display에서 Instagram App IDInstagram App Secret을 복사합니다.

필드 매핑:

Client IDInstagram App ID
Client SecretInstagram App Secret

요청 스코프:

user_profileuser_media

Microsoft

설정 경로: Azure Portal.

1
portal.azure.com Azure Active Directory (또는 Microsoft Entra ID) → App registrationsNew registration으로 이동합니다.
2
앱 이름을 입력하고 호환성을 위해 Accounts in any organizational directory and personal Microsoft accounts를 선택합니다.
3
Redirect URI에서 Web를 선택하고 아래 URL을 입력합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
Register를 누른 뒤 개요 페이지에서 Application (client) ID를 복사합니다.
5
Certificates & secrets Client secretsNew client secret에서 새 Secret을 만든 뒤 Value를 즉시 복사합니다(한 번만 표시됨).

필드 매핑:

Client IDApplication (client) ID
Client SecretClient secret Value

요청 스코프:

openidemailprofileUser.Read

Discord

설정 경로: discord.com/developers.

1
아래 Developer Portal New Application으로 이동해 앱 이름을 입력하고 생성합니다.
2
왼쪽 사이드바에서 OAuth2로 이동합니다. Redirects에서 Add Redirect를 눌러 아래 URL을 입력합니다:
https://api.authon.dev/v1/auth/oauth/redirect
3
같은 OAuth2 페이지에서 Client ID를 복사합니다. Reset Secret을 눌러 새 Client Secret도 복사합니다.

필드 매핑:

Client IDClient ID
Client SecretClient Secret

요청 스코프:

identifyemail

X (Twitter)

Authon은 PKCE 기반 OAuth 2.0을 사용합니다. 설정 경로: developer.twitter.com.

1
Developer Portal Projects & Apps에서 프로젝트를 선택하거나 생성한 뒤 Add App을 누릅니다.
2
App SettingsAuthentication settings에서 OAuth 2.0을 활성화하고 App type을 Web App으로 설정합니다.
3
Callback URI를 아래 URL로 설정합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
Keys and tokens 탭에서 Client IDClient Secret을 복사합니다.
참고: Twitter/X OAuth 2.0에서 email 스코프를 사용하려면 Elevated 권한이 있는 Developer Account가 필요합니다. 권한이 없으면 users.read tweet.read만 사용할 수 있습니다.

필드 매핑:

Client IDOAuth 2.0 Client ID
Client SecretOAuth 2.0 Client Secret

요청 스코프:

users.readtweet.readoffline.access

LinkedIn

설정 경로: linkedin.com/developers.

1
linkedin.com/developers/apps Create App에서 앱 이름, LinkedIn 페이지, 로고를 입력합니다.
2
Auth 탭의 Authorized redirect URLs for your app에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
3
같은 Auth 탭에서 Client IDClient Secret을 복사합니다.
4
Products 탭에서 Sign In with LinkedIn using OpenID Connect 제품 접근 권한을 요청합니다.

필드 매핑:

Client IDClient ID
Client SecretClient Secret

요청 스코프:

openidprofileemail

Slack

설정 경로: api.slack.com/apps.

1
api.slack.com/apps Create New AppFrom scratch로 앱을 생성하고 개발용 워크스페이스를 선택합니다.
2
왼쪽 사이드바의 OAuth & Permissions로 이동합니다. Redirect URLs에서 Add New Redirect URL을 눌러 아래 URL을 입력합니다:
https://api.authon.dev/v1/auth/oauth/redirect
3
ScopesUser Token Scopes에서 필요한 스코프를 추가합니다.
4
Basic Information에서 App Credentials의 Client IDClient Secret을 복사합니다.

필드 매핑:

Client IDClient ID
Client SecretClient Secret

요청 스코프:

openidemailprofile

Twitch

설정 경로: dev.twitch.tv/console.

1
dev.twitch.tv/console Applications Register Your Application으로 이동합니다.
2
OAuth Redirect URL을 아래 URL로 설정합니다:
https://api.authon.dev/v1/auth/oauth/redirect
3
CategoryWebsite Integration으로 설정하고 Create를 누릅니다.
4
앱의 Manage를 눌러 Client ID를 복사합니다. New Secret을 눌러 Client Secret도 복사합니다.

필드 매핑:

Client IDClient ID
Client SecretClient Secret

요청 스코프:

openiduser:read:email

LINE

설정 경로: developers.line.biz.

1
developers.line.biz Providers에서 제공자를 선택/생성한 뒤 Create a new channel을 누르고 LINE Login을 선택합니다.
2
채널 이름, 설명, 앱 타입(Web app)을 입력합니다.
3
LINE Login 탭의 Callback URL에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
Basic settings 탭에서 Channel IDChannel secret을 복사합니다.
5
Messaging API 탭에서 Webhook URL에 아래 URL을 입력하고, Use webhook을 활성화합니다:
https://api.authon.dev/v1/webhooks/oauth/line

필드 매핑:

Client IDChannel ID
Client SecretChannel secret

요청 스코프:

profileopenidemail

Kakao

카카오 로그인 설정은 카카오 공식 사전 설정 문서를 기준으로 진행하세요.

1
카카오 디벨로퍼스에서 내 애플리케이션을 생성합니다. developers.kakao.com → 내 애플리케이션 → 애플리케이션 추가
2
앱 대시보드에서 카카오 로그인 일반 사용 설정을 켭니다.
3
앱 대시보드에서 일반 플랫폼 키로 이동해 REST API Key를 발급/확인합니다. (Client ID) 그리고 카카오 로그인 일반에서 Redirect URI에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
발급된 REST API Key를 클릭해 상세 화면에서 Secret Key를 확인합니다. (Client Secret)
5
카카오 로그인 → 동의항목에서 닉네임, 프로필 사진, 카카오계정(이메일)을 활성화합니다.
6
내 애플리케이션 → 앱 설정 → 고급에서 서비스 종료 시 연결 끊기 알림 URL에 아래 URL을 입력합니다:
https://api.authon.dev/v1/webhooks/oauth/kakao
참고: 카카오 Secret Key는 선택 사항이지만 운영 환경에서는 설정을 권장합니다. Secret Key 없이 Client ID만 사용하면 토큰 교환 보안이 약해집니다.

필드 매핑:

Client IDREST API Key
Client SecretSecret Key (REST API Key 상세 화면)

요청 스코프:

profile_nicknameprofile_imageaccount_email

설정 경로: developers.naver.com.

1
developers.naver.com/apps/#/register로 이동합니다. 네이버 계정으로 로그인한 뒤 애플리케이션 등록 (Register Application).
2
애플리케이션 이름을 입력합니다. 사용 API에서 네이버 로그인 (Naver Login)을 선택하고 권한 항목(이름, 이메일, 프로필 이미지, 휴대전화)을 선택합니다.
3
서비스 URL에 앱 홈페이지 URL을 입력하고 Callback URL에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
등록 후 앱의 개요 (Overview) 탭에서 Client IDClient Secret을 복사합니다.
5
네이버 로그인 → 서비스 설정에서 연결 끊기 알림 URL에 아래 URL을 입력합니다:
https://api.authon.dev/v1/webhooks/oauth/naver

필드 매핑:

Client IDClient ID
Client SecretClient Secret

Spotify

설정 경로: developer.spotify.com/dashboard.

1
developer.spotify.com/dashboard Create App에서 앱 이름, 설명, 웹사이트 URL을 입력합니다.
2
Redirect URIs에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
3
Web APIWeb Playback SDK가 필요하면 체크하고 Save를 누릅니다.
4
앱 대시보드에서 Settings으로 들어가 Client ID를 복사하고 View client secret을 눌러 Client Secret도 복사합니다.

필드 매핑:

Client IDClient ID
Client SecretClient Secret

요청 스코프:

user-read-emailuser-read-private

TikTok

설정 경로: developers.tiktok.com.

1
developers.tiktok.com/apps Create App에서 앱 이름과 설명을 입력합니다.
2
Login Kit 제품 섹션에서 기능을 활성화하고 Redirect URI에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
3
Scopes에서 user.info.basicuser.info.email을 활성화합니다.
4
앱 상세 페이지에서 Client Key (Client ID로 사용)와 Client Secret을 복사합니다.
참고: TikTok은 Client ID 대신 "Client Key"라는 용어를 사용합니다. Authon의 Client ID 입력란에 Client Key 값을 넣으세요.

필드 매핑:

Client IDClient Key
Client SecretClient Secret

요청 스코프:

user.info.basicuser.info.email

GitLab

GitLab은 OAuth 2.0을 지원하며 gitlab.com 또는 자체 호스팅 GitLab 인스턴스에서 설정할 수 있습니다.

1
GitLab에서 아바타 메뉴의 Edit profile Applications (왼쪽 사이드바)로 이동합니다.
2
Name을 입력하고 Redirect URI에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
3
Scopes에서 read_useremail을 선택합니다.
4
Save application을 누른 뒤 Application IDSecret을 복사합니다.

필드 매핑:

Client IDApplication ID
Client SecretSecret

요청 스코프:

read_useremailopenidprofile

Bitbucket

설정 경로: Bitbucket Workspace 설정 bitbucket.org.

1
Workspace Settings (아바타 클릭 → 워크스페이스 선택 → Settings) → OAuth consumers Add consumer.
2
NameCallback URL을 입력합니다:
https://api.authon.dev/v1/auth/oauth/redirect
3
Permissions에서 Account → ReadEmail → Read를 선택합니다.
4
Save를 누른 뒤 consumer를 펼쳐 Key (Client ID)와 Secret (Client Secret)을 확인합니다.

필드 매핑:

Client IDKey
Client SecretSecret

Notion

설정 경로: notion.so/my-integrations.

1
notion.so/my-integrations New integration으로 이동합니다.
2
Integration name을 입력하고 워크스페이스를 선택한 뒤 통합 유형을 Public으로 설정합니다.
3
OAuth Domain & URIs 섹션에서 Redirect URI에 아래 URL을 추가합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
통합 생성 후 설정 페이지에서 Client Secret 옆 Show를 눌러 값을 확인하고 OAuth client IDOAuth client secret을 복사합니다.
참고: Notion OAuth는 인증 과정에서 사용자가 명시적으로 선택한 페이지/데이터베이스에만 접근 권한을 부여합니다. 사용자 이메일을 받으려면 통합 설정에서 user.email 권한을 활성화해야 합니다.

필드 매핑:

Client IDOAuth client ID
Client SecretOAuth client secret
Authon — 범용 인증 플랫폼