지원하는 로그인 수단 조회
GetProviderListAsync
로그인 화면에 어떤 로그인 버튼을 노출할지 결정하려면 GetProviderListAsync()를 호출하세요. 로그인 전에 호출하는 메서드이므로 세션이 없어도 됩니다. 로그인 화면을 그리기 직전에 호출하고, 반환된 목록대로 로그인 버튼을 구성하세요.
Hive Axyl 인증 서버는 아래 조건을 모두 적용해 이 앱에서 지금 사용할 수 있는 로그인 수단 목록을 반환합니다. 앱 클라이언트는 조건을 따로 전달하지 않으며, 국가도 앱에서 지정할 수 없습니다.
- 서비스 환경: App ID에 귀속된 실행 환경과 배포 스토어의 조합에 따라 사용할 수 있는 로그인 수단
- 콘솔 로그인 설정: Hive 콘솔의 로그인 설정에서 사용으로 켜 둔 로그인 수단
- 국가: 요청 IP로 판별한 국가에 따라 일부 로그인 수단 제외
호출 파라미터
| 필드명 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| context | ApiCallContext | Optional | 호출 단위 설정 객체입니다. 멱등키, 취소 토큰, 요청 정책을 지정하며 생략하면 기본값이 사용됩니다. |
호출 예시
GetProviderListAsync()의 반환 객체 AuthGetProviderListResult는 성공, 기능별 결과인 Outcome, 호출을 마치지 못한 Failure로 나뉩니다. 이 메서드는 예외를 던지지 않고 모든 처리 결과를 반환 객체로 전달하므로, try/catch 대신 switch 구문으로 분기해 처리하세요.
using Hive.Axyl.Auth;
using Hive.Axyl.Core;
using UnityEngine;
// auth: 모듈 초기화 시 등록한 IAuthService
IAuthService auth = HiveCore.Resolve<IAuthService>();
AuthGetProviderListResult result = await auth.GetProviderListAsync();
switch (result)
{
case AuthGetProviderListResult.Success success:
// 반환된 로그인 수단만 로그인 화면에 노출합니다.
foreach (ProviderItem provider in success.Data.ProviderList)
Debug.Log($"[LoginUI] {provider.ProviderId} 버튼 노출");
break;
case AuthGetProviderListResult.ProviderConfigNotFound:
// 콘솔에 이 앱의 로그인 수단이 하나도 설정되지 않은 상태입니다.
Debug.LogError("콘솔의 로그인 설정을 확인하세요.");
break;
// 공통 실패 처리 (네트워크·서버 오류)
case AuthGetProviderListResult.Failure failure:
HiveError err = failure.Problem;
Debug.LogError($"[{err.Code}] {err.Message} (trace: {err.TraceId})");
break;
// 안전망: 처리하지 않은 결과 및 알 수 없는 신규 결과(UnknownOutcome)
default:
Debug.LogWarning($"처리되지 않은 결과: {result.GetType().Name}");
break;
}
응답 데이터
성공 시 AuthGetProviderListResult.Success의 Data에 결과가 담깁니다.
| 변수명 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
Data.ProviderList | IReadOnlyList<ProviderItem> | Required | 지금 이 앱에서 사용할 수 있는 로그인 수단 목록 |
ProviderItem
| 변수명 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
ProviderId | Provider | Required | 로그인 수단 식별자입니다. Guest, Google, SigninApple, GooglePlayGames, Steam, X, Username, CustomProvider 중 하나입니다. |
ProviderIndex | int | Required | 로그인 수단을 나타내는 숫자 식별자 |
응답 예시
응답 상태
반환 객체 AuthGetProviderListResult는 아래 케이스 중 하나로 분기됩니다.
| 응답 케이스 | 설명 | 앱 클라이언트 대응 |
|---|---|---|
Success | 조회 성공. Data.ProviderList에 목록이 담깁니다. | 목록대로 로그인 버튼 구성 |
AppNotFound | 앱 정보를 찾을 수 없는 경우 | 콘솔의 App ID 등록 상태 확인 |
ProviderConfigNotFound | 이 앱에 설정된 로그인 수단이 없는 경우 | 콘솔의 로그인 설정 확인 |
TerminateService | 서비스가 종료된 앱인 경우 | 서비스 운영 상태 확인 |
UnknownOutcome | 이 SDK 버전이 알지 못하는 신규 결과 | 로깅 후 보수적으로 처리 |
Failure | 공통 Failure입니다. 필수 파라미터 누락·형식 오류(invalid_parameter), 필수 필드 누락(missing_field), X-App-Id 헤더 누락(missing_app_id)도 여기로 분기하며 원인은 Failure.Problem.ExternalCode에 담깁니다. 공통 오류 처리를 참조하세요. | 공통 오류 처리 기준에 따라 처리 |
연관 문서
- 외부 인증 제공자 로그인: Google, Apple, Google Play Games, Steam, X 계정 로그인 구현
- 시작하기 - 로그인: 게스트 계정과 유저네임 계정 로그인 구현
- 계정 연동 처리 및 조회: 현재 계정에 연결된 로그인 수단 확인