콘텐츠로 이동

OAuth 개요

tinyauth는 타사 OAuth 제공자를 통한 소셜 로그인을 지원해요. 사용자는 기존 계정(Google, GitHub, Apple 등)으로 간편하게 로그인할 수 있고, 최초 가입은 registration.enabled가 켜져 있을 때만 허용돼요. 타사 로그인은 identity_providers 섹션에서 구성하며, 여러 제공자를 동시에 활성화할 수 있어요.

config.yaml
identity_providers:
- id: google
type: google
enabled: true
client_id: ${GOOGLE_CLIENT_ID}
client_secret: ${GOOGLE_CLIENT_SECRET}
- id: github
type: github
enabled: true
client_id: ${GITHUB_CLIENT_ID}
client_secret: ${GITHUB_CLIENT_SECRET}

유형설명
googleGoogle 계정 로그인 (설정 가이드)
appleApple ID 로그인 (설정 가이드)
githubGitHub 계정 로그인 (설정 가이드)
generic_oauth기타 OAuth/OIDC 제공자 (설정 가이드)

모든 제공자 유형에 공통으로 적용되는 설정 항목이에요.

항목필수기본값설명
idO-제공자의 고유 식별자예요. URL 및 데이터베이스에서 사용돼요.
typeO-제공자 유형이에요. google, apple, github, generic_oauth 중 하나예요.
enabledXfalse이 제공자의 활성화 여부예요.
display_name-로그인 버튼에 표시될 이름이에요. generic_oauth 유형에서는 필수예요.
icon_urlX-로그인 버튼에 표시될 아이콘 URL이에요.
client_idO-OAuth 제공자에서 발급받은 클라이언트 ID예요.
client_secretO-OAuth 제공자에서 발급받은 클라이언트 시크릿이에요.
scopesX유형별 기본값OAuth 스코프 목록이에요. 지정하지 않으면 제공자 유형별 기본값이 사용돼요.
email_conflict_strategyXauto_link기존 계정과 이메일이 충돌할 때의 처리 방식이에요.

사용자가 이미 비밀번호로 가입한 이메일과 동일한 이메일을 가진 OAuth 계정으로 로그인하려 할 때의 처리 방식을 지정해요.

  • auto_link: 동일한 이메일의 기존 계정에 OAuth 계정을 자동으로 연결해요. 대부분의 경우 이 방식이 편리해요.
  • require_link: 자동 연결하지 않고 사용자에게 직접 연결을 요구해요. 보안이 더 중요한 경우 사용해요.

OAuth 제공자에 애플리케이션을 등록할 때 콜백(리다이렉트) URL을 지정해야 해요. tinyauth의 콜백 URL은 다음 형식이에요.

{server.public_origin}/api/oauth/{id}/callback

예를 들어, server.public_originhttps://auth.example.com이고 idgoogle인 경우:

https://auth.example.com/api/oauth/google/callback

각 제공자별 상세 설정 방법은 해당 가이드를 참고해 주세요.