콘텐츠로 이동

커스텀 계정 연동 해제

현재 로그인한 Player ID에서 커스텀 계정의 연결을 끊습니다. 해제한 뒤에는 해당 커스텀 계정으로 이 Player ID에 로그인할 수 없습니다. 사용자가 다른 로그인 수단으로도 로그인할 수 있는지 먼저 확인하세요.

커스텀 계정 해제는 로그인 수단 연동 해제 메서드인 UnlinkProviderAsync()를 사용합니다. 요청의 ProviderId에 커스텀 계정을 지정하면 현재 Player ID에 연결된 커스텀 계정이 해제됩니다.

호출하기 전에 사용자가 로그인해 세션이 활성화된 상태여야 합니다. 해제는 현재 세션의 Player ID를 기준으로 처리됩니다.

Method

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에 담깁니다. 공통 오류 처리를 참조하세요. 공통 오류 처리 기준에 따라 처리

다음 단계