시작하기

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.

1
Apple Developer Portal에서 Certificates, Identifiers & Profiles Identifiers로 이동해 App ID를 생성(또는 선택)하고 Sign In with Apple을 활성화합니다.
2
새 식별자를 Services IDs 타입으로 만들고 설명/고유 Bundle ID(예: com.yourapp.web)를 설정한 뒤 Sign In with Apple을 켭니다.
3
Sign In with AppleConfigure에서 도메인을 추가하고 Return URL을 아래처럼 설정합니다:
https://api.authon.dev/v1/auth/oauth/redirect
4
KeysRegister a New Key로 이동합니다. Sign In with Apple을 활성화하고 Configure에서 App ID를 연결한 뒤 .p8 개인 키 파일을 다운로드하고 Key ID를 기록합니다.
5
Apple은 최대 6개월 유효한 JWT를 Client Secret으로 사용합니다. 아래 스크립트로 생성한 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 대시보드에 갱신해야 합니다.
6
서버 대 서버 알림을 받으려면, 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 — 범용 인증 플랫폼