인증 방식 개요
meli 플랫폼은 정적 사이트 배포를 단순화하며 GitHub, GitLab, Gitea, Google 계정을 통한 로그인을 지원합니다. 인증 설정은 server/src/auth/passport/ 디렉터리의 전용 설정 파일을 통해 환경 변수로 관리됩니다.
공통 설정 절차
모든 인증 공급자에 적용되는 기본 단계:
- 해당 플랫폼에서 OAuth 애플리케이션 생성
- 클라이언트 식별자와 비밀키 획득
- 콜백 URL 설정
- 환경 변수 구성
- meli 서비스 재시작
GitHub 인증 설정
환경 변수 구성 예시:
AUTH_GITHUB_ENDPOINT=https://github.com
AUTH_GITHUB_APP_ID=클라이언트_ID
AUTH_GITHUB_APP_SECRET=클라이언트_비밀키
# 선택적 조직 제한
AUTH_GITHUB_ALLOWED_ORGS=허용_조직_목록
구현 특징: OAuth2 전략 사용, read:user 및 user:email 권한 요청, 조직 소속 여부 검증
GitLab 인증 설정
환경 변수 구성 예시:
AUTH_GITLAB_ENDPOINT=https://gitlab.com
AUTH_GITLAB_APP_CODE=클라이언트_ID
AUTH_GITLAB_SECRET_KEY=클라이언트_비밀키
# 선택적 그룹 제한
AUTH_GITLAB_ALLOWED_GROUPS=허용_그룹_목록
구현 특징: read_api 권한 범위 사용, 그룹 기반 접근 제어
Gitea 인증 설정
환경 변수 구성 예시:
AUTH_GITEA_ENDPOINT=https://gitea_인스턴스_주소
AUTH_GITEA_CLIENT_CODE=클라이언트_ID
AUTH_GITEA_PRIVATE_KEY=클라이언트_비밀키
# 선택적 조직 제한
AUTH_GITEA_PERMITTED_ORGS=허용_조직_목록
구현 특징: 명시적 권한 범위 요청 불필요, 사용자 정보 자동 수집
Google 인증 설정
환경 변수 구성 예시:
AUTH_GOOGLE_CLIENT_ID=클라이언트_ID
AUTH_GOOGLE_SECRET=클라이언트_비밀키
구현 특징: 전용 Google 전략 사용, profile 및 email 권한 범위, 조직 제한 미지원
다중 인증 동시 사용
여러 인증 방식을 동시에 활성화하면 로그인 페이지에 해당 공급자의 버튼이 자동 표시됩니다. 활성화된 인증 방법은 /auth/methods 엔드포인트에서 확인 가능합니다.
문제 해결
주요 오류 및 해결 방안:
- 콜백 URL 불일치: MELI_URL 환경 변수와 인증 공급자 설정 일치 확인
- 권한 부족: 필요한 권한 범위 요청 여부 점검
- 환경 변수 누락: 필수 변수 설정 완료 여부 검증
오류 분석은 server/src/auth/ 디렉터리 로그 파일에서 진행할 수 있습니다.