대시보드
인증

로그인 제공업체

Google, Apple, GitHub 및 Microsoft를 구성합니다.

프로젝트에서는 Google, Apple, GitHub 및 Microsoft 로그인을 활성화할 수 있습니다. HALO는 업스트림 콜백 교환을 소유하고, 애플리케이션은 허용 목록에 있는 클라이언트 콜백에서 수명이 짧은 일회성 코드를 받습니다.

#프로젝트 콜백 URL

https://api.agihalo.com/api/v1/auth/projects/{PROJECT_ID}/providers/{PROVIDER}/callback

#지원되는 제공자

공급자업스트림 애플리케이션콜백 방법
GoogleOAuth 웹 애플리케이션GET
Apple서비스 ID / Apple로 로그인POST 양식 응답
GitHubOAuth 앱GET
Microsoft앱 등록/웹 리디렉션GET

HALO에 클라이언트 ID와 비밀번호를 저장하고 공급자 범위를 선택한 다음 로그인을 활성화하세요. 저장된 비밀은 암호화되어 결코 반환되지 않습니다.

#브라우저 + PKCE 흐름

// 1. Create an S256 PKCE verifier/challenge in your app.
const url = new URL(
  "https://api.agihalo.com/api/v1/auth/providers/google/authorize"
);

url.searchParams.set("apikey", HALO_PROJECT_PUBLISHABLE_KEY);
url.searchParams.set("redirect_to", "https://app.example.com/auth/callback");
url.searchParams.set("code_challenge", codeChallenge);
url.searchParams.set("code_challenge_method", "S256");
url.searchParams.set("state", clientState);

window.location.assign(url.toString());
  1. 1
    앱이 인증을 시작합니다

    게시 가능한 키, 허용 목록에 있는 클라이언트 콜백, 상태 및 S256 챌린지를 사용하여 HALO 공급자 인증 URL을 엽니다.

  2. 2
    HALO가 공급자에게 호출

    HALO는 일회성 상태를 저장하고, 공급자 요청을 보내고, 프로젝트별 콜백을 받습니다.

  3. 3
    콜백이 코드를 수신합니다.

    HALO는 다음을 사용하여 정확한 클라이언트 콜백으로 리디렉션합니다. 수명이 짧은 코드와 원래 상태.

  4. 4
    앱이 코드를 교환합니다

    프로젝트 사용자 세션을 수신하려면 원래 검증자와 리디렉션 URL을 보냅니다.

#보안 동작

  • 승인 및 콜백 응답은 비저장 정책을 사용합니다.
  • 리디렉션 URL은 프로젝트 구성과 정확하게 일치해야 합니다.
  • 상태 코드와 일회성 코드는 한 번 소모되고 만료됩니다.
  • 확인되지 않은 제공자 이메일 및 프로젝트 간 ID 충돌이 실패 처리됩니다.