Authentication with MSAL

JELoginHandler 는 기본적으로 Windows 에서만 작동합니다. 다른 플랫폼에서도 작동하기 위해서는 반드시 XboxAuthNet.Game.Msal와 함께 사용해야 합니다.

MSAL 을 CmlLib.Core.Auth.Microsoft 와 함께 사용하기 위해서는 두 가지 방법이 있습니다.

  • JELoginHandler 초기화 할 때 OAuthProvider 등록하기

  • IAuthenticator 만들고 MSAL OAuth 추가하기

OAuthProvider 등록하기

JELoginHandler 초기화 할 때 OAuthProvider 를 등록하면 이후 호출하는 모든 메서드가 MSAL 을 사용하여 로그인을 처리합니다.

var app = await MsalClientHelper.BuildApplicationWithCache("CLIENT-ID");
var loginHandler = new JELoginHandlerBuilder()
    .WithOAuthProvider(new MsalCodeFlowProvider(app))
    .Build();
    
// 로그인
var session = await loginHandler.Authenticate();

// 새로운 계정 추가
var session = await loginHandler.AuthenticateInteractively();

// 가장 최근에 로그인한 계정으로 로그인 시도 
var session = await loginHandler.AuthenticateSilently();

// 계정 정보 삭제
await loginHandler.Signout();

// 로그아웃
await loginHandler.SignoutWithBrowser();

loginHandler 에 대한 더 자세한 정보는 JELoginHandler를 참고하세요.

AddMsalOAuth 메서드 사용하기

새로운 계정으로 로그인:

var app = await MsalClientHelper.BuildApplicationWithCache("CLIENT-ID");
var loginHandler = new JELoginHandlerBuilder()
    .Build();

// 새로운 계정으로 authenticator 만들기
var authenticator = loginHandler.CreateAuthenticatorWithNewAccount();
authenticator.AddMsalOAuth(app, msal => msal.Interactive());
authenticator.AddXboxAuthForJE(xbox => xbox.Basic());
authenticator.AddForceJEAuthenticator();
var session = await authenticator.ExecuteForLauncherAsync();

기존 계정으로 로그인:

var app = await MsalClientHelper.BuildApplicationWithCache("CLIENT-ID");
var loginHandler = new JELoginHandlerBuilder()
    .Build();

// 가장 최근에 로그인한 계정으로 authenticator 만들기
var authenticator = loginHandler.CreateAuthenticatorWithDefaultAccount();
authenticator.AddMsalOAuth(app, msal => msal.Silent());
authenticator.AddXboxAuthForJE(xbox => xbox.Basic());
authenticator.AddJEAuthenticator();
var session = await authenticator.ExecuteForLauncherAsync();

로그아웃:

var app = await MsalClientHelper.BuildApplicationWithCache("CLIENT-ID");
var loginHandler = new JELoginHandlerBuilder()
    .Build();
    
var authenticator = loginHandler.CreateAuthenticatorWithDefaultAccount();
authenticator.AddMsalOAuth(app, msal => msal.ClearSession());
authenticator.AddXboxAuthSignout();
authenticator.AddJESignout();
var session = await authenticator.ExecuteForLauncherAsync();

msal.Interactive(), msal.Silent() 등등 msal 의 더 많은 메서드들은 OAuth를 참고하세요.

Last updated