모듈 설치 및 초기화
외부 인증 제공자 로그인에는 공통 인증 모듈과 앱이 제공할 로그인 수단에 맞는 Add-on이 필요합니다. 설치와 초기화를 마친 뒤 각 로그인 수단을 구현하세요.
시작하기 전에 2단계. Hive Axyl SDK 설치를 완료하세요.
1. 모듈 설치
Unity Package Manager에서 프로젝트 의존성에 패키지를 추가해 모듈을 설치합니다. 전역 공통 패키지인 com.com2usplatform.hiveaxyl.core가 먼저 설치되어 있어야 합니다.
1.1. 공통 모듈 설치
모든 로그인 수단이 아래 패키지를 사용합니다.
com.com2usplatform.hiveaxyl.auth: 외부 인증 제공자 로그인, 외부 인증 코드 교환, 토큰 발급 등의 인증 APIcom.com2usplatform.hiveaxyl.storage: 기기의 보안 저장소에 값을 저장하고 불러오는 기능.deviceKey와 리프레시 토큰 보관에 사용
1.2. 로그인 수단별 Add-on 설치
앱이 지원할 외부 인증 제공자와 OS 조합에 맞는 Add-on을 추가로 설치합니다. 어떤 조합에 어떤 Add-on이 필요한지는 OS별 로그인 방식에서 확인하세요. 커스텀 계정으로 로그인은 외부 인증 제공자를 거치지 않으므로 Add-on을 설치하지 않습니다.
| Add-on | 패키지 | 지원 OS |
|---|---|---|
| 웹 로그인 세션 | com.com2usplatform.hiveaxyl.auth.addon.webauth | Android, iOS, macOS, Windows |
| Google 로그인 | com.com2usplatform.hiveaxyl.auth.addon.credentialmanager | Android |
| Apple 로그인 | com.com2usplatform.hiveaxyl.auth.addon.apple | iOS, macOS |
| Google Play Games 로그인 | com.com2usplatform.hiveaxyl.auth.addon.gpg | Android |
| Steam 로그인 | com.com2usplatform.hiveaxyl.auth.addon.steam | Windows, macOS |
예를 들어 Google 계정으로 로그인을 Android와 그 밖의 OS에서 모두 제공하려면 com.com2usplatform.hiveaxyl.auth.addon.credentialmanager와 com.com2usplatform.hiveaxyl.auth.addon.webauth를 함께 설치합니다.
Add-on을 설치하면 해당 Add-on이 사용하는 외부 라이브러리도 함께 설치됩니다. Steam 로그인 Add-on은 Steamworks SDK를 감싸는 com.com2usplatform.hiveaxyl.steamworks 패키지를, Google 로그인 Add-on은 androidx.credentials 계열 라이브러리를, Google Play Games 로그인 Add-on은 com.google.android.gms:play-services-games-v2를 각각 가져옵니다. 이 라이브러리를 프로젝트에 직접 추가할 필요는 없습니다.
사용하지 않는 Add-on은 설치하지 마세요. 설치한 Add-on의 외부 라이브러리가 빌드 결과물에 함께 포함되어 앱 용량이 늘어납니다.
1.3. 설치 확인
아래 using 구문에서 컴파일 오류가 발생하지 않으면 설치가 완료된 것입니다. Add-on은 설치한 것만 확인하세요.
패키지 선택과 설치 절차는 3단계. 모듈 설치를 참조하세요.
2. 모듈 초기화
로그인에 사용하는 모듈은 SDK 전역 초기화 시점에 함께 등록합니다. HiveBootstrap.Initialize의 등록 단계에서 아래 메서드를 호출하세요.
| 등록 메서드 | 등록되는 타입 | 역할 | 등록되는 OS |
|---|---|---|---|
AddAuth() | IAuthService | 로그인과 외부 인증 코드 교환 | 전 OS |
AddToken() | ITokenService | 인가 코드를 액세스 토큰과 리프레시 토큰으로 교환 | 전 OS |
AddSecureStorage() | ISecureStorage | deviceKey와 토큰 보관 | Android, iOS, macOS, Windows |
using Hive.Axyl.Core;
using Hive.Axyl.Auth;
using Hive.Axyl.Storage;
var config = CoreConfig.CreateBuilder("{appId}").Build();
HiveBootstrap.Initialize(config, builder =>
{
builder.AddAuth()
.AddToken()
.AddSecureStorage();
});
IAuthService auth = HiveCore.Resolve<IAuthService>();
ITokenService token = HiveCore.Resolve<ITokenService>();
전역 초기화 절차는 4단계. SDK 초기화를 참조하세요.
로그인을 마친 뒤 세션을 등록할 때 사용하는 ISessionManager는 별도의 등록 메서드가 없습니다. HiveBootstrap.Initialize가 자동으로 등록하므로 HiveCore.Resolve<ISessionManager>()로 바로 가져오세요.
2.1. 로그인 수단별 Add-on 초기화
설치한 Add-on도 같은 등록 단계에서 함께 등록합니다.
| 등록 메서드 | 등록되는 타입 | 등록되는 OS |
|---|---|---|
AddWebAuth() | IExternalUserAgent | Android, iOS, macOS, Windows |
AddCredentialManager() | IAndroidCredentialManagerPlugin | Android |
AddAppleSignIn() | IAppleSignInPlugin | iOS, macOS |
AddGooglePlayGames() | IGooglePlayGamesPlugin | Android |
AddSteamAuth() | ISteamPlugin | Windows, macOS |
등록 메서드는 어느 OS에서 호출해도 오류를 일으키지 않습니다. 지원하지 않는 OS와 Unity 에디터에서는 등록만 건너뜁니다. 따라서 아래처럼 앱이 지원할 Add-on을 한 번에 등록해도 됩니다.
using Hive.Axyl.Core;
using Hive.Axyl.Auth;
using Hive.Axyl.Storage;
using Hive.Axyl.Auth.Addon.WebAuth;
using Hive.Axyl.Auth.Addon.CredentialManager;
using Hive.Axyl.Auth.Addon.Apple;
using Hive.Axyl.Auth.Addon.GPG;
using Hive.Axyl.Auth.Addon.Steam;
HiveBootstrap.Initialize(config, builder =>
{
builder.AddAuth()
.AddToken()
.AddSecureStorage()
.AddWebAuth()
.AddCredentialManager()
.AddAppleSignIn()
.AddGooglePlayGames()
.AddSteamAuth();
});
2.2. 초기화 결과 확인
HiveCore.Resolve<IAuthService>()와 HiveCore.Resolve<ITokenService>()가 인스턴스를 정상 반환하면 공통 모듈 초기화가 완료된 상태입니다.
보안 저장소와 Add-on은 지원하는 OS에서만 등록되므로 HiveCore.Resolve<T>()로 가져오면 지원하지 않는 OS와 Unity 에디터에서 RegistrationNotFoundException이 발생합니다. ISecureStorage와 Add-on을 가져올 때는 HiveCore.TryResolve<T>()로 등록 여부를 먼저 확인하고, 등록되지 않았다면 해당 OS에서 사용할 다른 방식으로 분기하세요.
using Hive.Axyl.Core;
using Hive.Axyl.Auth.Addon.CredentialManager;
using Hive.Axyl.Auth.Addon.WebAuth;
// Android에서는 Google 로그인 Add-on을, 그 밖의 OS에서는 웹 로그인 세션을 사용합니다.
if (HiveCore.TryResolve<IAndroidCredentialManagerPlugin>(out var googlePlugin))
{
// Google 로그인 Add-on으로 자격 증명을 획득합니다.
}
else if (HiveCore.TryResolve<IExternalUserAgent>(out var webAuth))
{
// 웹 로그인 세션으로 자격 증명을 획득합니다.
}
다음 단계
모든 로그인 수단이 공통으로 사용하는 메서드를 먼저 확인한 뒤, 앱이 제공할 로그인 수단의 연동 환경을 구성하세요.