var session = await loginHandler.AuthenticateInteractively();
// var session = await loginHandler.AuthenticateInteractively(selectedAccount, cancellationToken);
새로운 계정을 추가하여 로그인합니다. 사용자에게 Microsoft OAuth 페이지를 표시하여 마이크로소프트 계정을 입력하도록 합니다.
이 메서드는 마이크로소프트 OAuth 로그인 페이지를 표시하기 위해서 Microsoft WebView2 를 사용합니다. 이 내용을 반드시 숙지하고 있어야 합니다.
Microsoft WebView2 는 Windows 에서만 사용 가능합니다. 다른 플랫폼에서 사용하기 위해서는 XboxAuthNet.Game.Msal 가 필요합니다.
WebView2 를 사용하기 위해서는 유저들은 (개발자와 최종 사용자 포함) 반드시 WebView2 Runtime이 설치되어 있어야 합니다.이 문서를 참고하여 런처를 WebView2와 함께 배포하는 방법을 알아보세요. (예를 들어 런타임 설치를 direct download link 로 자동화 할 수 있습니다: https://go.microsoft.com/fwlink/p/?LinkId=2124703)
var session = await loginHandler.AuthenticateSilently();
// var session = await loginHandler.AuthenticateSilently(selectedAccount, cancellationToken);
가장 최근에 플레이한 계정 정보를 이용하여 로그인합니다.
만약 이미 유저가 로그인 된 상태라면, 로그인 정보를 즉시 반환합니다.
만약 로그인 정보가 만료된 상태라면, 세션 refresh 를 시도합니다. 이 과정은 유저와의 상호작용이나 웹뷰 없이 진행됩니다.
만약 유저의 로그인 정보가 저장되어 있지 않거나 세션 refresh 에 실패한다면 MicrosoftOAuthException 예외가 발생합니다. 이 경우 새로운 계정으로 로그인같은 메서드를 통해 로그인을 다시 진행해야 합니다.
계정 목록 나열하기
var accounts = loginHandler.AccountManager.GetAccounts();
foreach (var account in accounts)
{
if (account is not JEGameAccount jeAccount)
continue;
Console.WriteLine("Identifier: " + jeAccount.Identifier);
Console.WriteLine("LastAccess: " + jeAccount.LastAccess);
Console.WriteLine("Gamertag: " + jeAccount.XboxTokens?.XstsToken?.XuiClaims?.Gamertag);
Console.WriteLine("Username: " + jeAccount.Profile?.Username);
Console.WriteLine("UUID: " + jeAccount.Profile?.UUID);
}
로그인에 성공한 계정은 자동으로 계정 정보가 파일에 저장됩니다. 위 코드는 저장되어 있는 모든 계정의 정보를 출력합니다.
계정 선택
index 번호로 계정 선택하기:
var accounts = loginHandler.AccountManager.GetAccounts();
var selectedAccount = accounts.ElementAt(1);
각 계정은 계정을 구분하기 위한 유일한 문자열 값(Identifier)을 가지고 있습니다. Identifier으로 계정을 선택하려면:
var accounts = loginHandler.AccountManager.GetAccounts();
var selectedAccount = accounts.GetAccount("Identifier");
JE 계정의 유저네임으로 계정을 선택하려면:
var accounts = loginHandler.AccountManager.GetAccounts();
var selectedAccount = accounts.GetJEAccountByUsername("username");
선택한 계정으로 로그인
var accounts = loginHandler.AccountManager.GetAccounts();
var selectedAccount = accounts.ElementAt(1);
var session = await loginHandler.Authenticate(selectedAccount);
계정 목록을 불러온 후 두번째 계정 (index number 1) 으로 로그인을 시도합니다.
가장 최근에 로그인한 계정을 로그아웃
Signout 메서드는 WebView2 브라우저의 캐시를 지우지 않습니다. 브라우저 캐시도 같이 지우기 위해서는 SignoutWithBrowser 메서드를 이용하세요.