커스텀 계정 연동 해제
현재 로그인한 Player ID에서 커스텀 계정의 연결을 끊습니다. 해제한 뒤에는 해당 커스텀 계정으로 이 Player ID에 로그인할 수 없습니다. 사용자가 다른 로그인 수단으로도 로그인할 수 있는지 먼저 확인하세요.
커스텀 계정 해제는 로그인 수단 연동 해제 메서드인 UnlinkProviderAsync()를 사용합니다. 요청의 ProviderId에 커스텀 계정을 지정하면 현재 Player ID에 연결된 커스텀 계정이 해제됩니다.
호출하기 전에 사용자가 로그인해 세션이 활성화된 상태여야 합니다. 해제는 현재 세션의 Player ID를 기준으로 처리됩니다.
연동 해제 처리
UnlinkProviderAsync
UnlinkProviderAsync()를 호출해 현재 Player ID에서 커스텀 계정의 연결을 끊습니다.
호출 파라미터
| 필드명 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| request | ProviderUnlinkRequest | Required | 로그인 수단 연동 해제 요청 |
| context | ApiCallContext | Optional | 호출 단위 설정 객체입니다. 생략하면 기본값이 사용됩니다. |
ProviderUnlinkRequest
| 필드명 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
ProviderId | Provider | Required | 해제할 로그인 수단. 커스텀 계정은 CustomProvider를 지정합니다. |
호출 예시
요청 수행이 불가능한 공통 실패(Failure)의 결과 모델과 처리 원칙은 공통 오류 처리를 참조하세요.
using Hive.Axyl.Auth;
using Hive.Axyl.Core;
using UnityEngine;
IAuthService auth = HiveCore.Resolve<IAuthService>();
var result = await auth.UnlinkProviderAsync(new ProviderUnlinkRequest {
ProviderId = Provider.CustomProvider,
});
switch (result)
{
case AuthUnlinkProviderResult.Success:
// 연동 해제 완료 → 연동 상태 화면 갱신
break;
case AuthUnlinkProviderResult.ProviderNotExist:
// 현재 Player ID에 커스텀 계정이 연동되어 있지 않음
break;
case AuthUnlinkProviderResult.LastProviderUnlinkBlocked:
// 마지막으로 남은 로그인 수단이라 해제할 수 없음
// 다른 로그인 수단을 먼저 연동하도록 안내
break;
case AuthUnlinkProviderResult.Failure failure:
HiveError err = failure.Problem;
Debug.LogError($"[{err.Code}] {err.Message} (trace: {err.TraceId})");
break;
// 안전망: 처리하지 않은 결과 및 알 수 없는 신규 결과(UnknownOutcome)
default:
Debug.LogWarning($"처리되지 않은 결과: {result.GetType().Name}");
break;
}
응답 데이터
성공 시 AuthUnlinkProviderResult.Success의 Data(VoidResponseData)에는 사용할 값이 담기지 않습니다. Success로 분기하면 해제가 처리된 것입니다.
연동 상태 화면을 즉시 갱신해야 한다면 앱이 보관한 로그인 수단 목록을 직접 갱신하거나, 다음 로그인 응답의 Data.ProviderList를 기준으로 다시 표시하세요.
응답 상태
AuthUnlinkProviderResult의 응답 케이스는 switch 구문으로 처리하는 것을 권장합니다.
| 응답 케이스 | 설명 | 앱 클라이언트 대응 |
|---|---|---|
Success | 연동 해제 성공 | 연동 상태 화면 갱신 |
ProviderNotExist | 현재 Player ID에 해당 로그인 수단이 연동되어 있지 않은 경우 | 최신 연동 상태 확인 |
LastProviderUnlinkBlocked | 마지막으로 남은 로그인 수단이라 해제할 수 없는 경우 | 다른 로그인 수단을 먼저 연동하도록 안내 |
GuestUnlinkBlocked | ProviderId에 게스트를 지정한 경우. 게스트는 연동을 해제할 수 없습니다. | 요청한 ProviderId 값 점검 |
ProviderNotSupported | 정의되지 않은 ProviderId 값을 요청한 경우 | 요청한 ProviderId 값 점검 |
AppIdMismatch | 요청의 앱 정보가 세션의 앱 정보와 다른 경우 | SDK 초기화 상태 확인 |
InvalidGatewayContext | 인증 정보가 요청에 실리지 않은 경우 | 세션 활성화 상태 확인 |
IpBlocked | 접속 IP가 차단된 경우 | 정책 안내 |
AppNotFound | 앱 정보를 찾을 수 없는 경우 | 콘솔의 앱 등록 상태 확인 |
TerminateService | 서비스가 종료된 앱인 경우 | 서비스 운영 상태 확인 |
UnknownOutcome | 이 SDK 버전이 알지 못하는 신규 결과 | 로깅 후 보수적으로 처리 |
Failure | 공통 Failure입니다. 필수 파라미터 누락·형식 오류(invalid_parameter), 필수 필드 누락(missing_field), X-App-Id 헤더 누락(missing_app_id)도 여기로 분기하며 원인은 Failure.Problem.ExternalCode에 담깁니다. 공통 오류 처리를 참조하세요. | 공통 오류 처리 기준에 따라 처리 |