Автентифікація за допомогою MSAL¶
JELoginHandler за замовчуванням працює лише на Windows. Щоб використовувати його на інших платформах, необхідно задіяти XboxAuthNet.Game.Msal.
Існує два способи використання CmlLib.Core.Auth.Microsoft разом із XboxAuthNet.Game.Msal:
- Зареєструвати
OAuthProviderпід час ініціалізаціїJELoginHandler. - Створити
IAuthenticatorта додати до нього автентифікатор MSAL.
Реєстрація OAuthProvider¶
Зареєструйте OAuthProvider під час ініціалізації JELoginHandler, щоб усі наступні викликані вами методи виконували вхід через 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();
// створення автентифікатора для нового облікового запису
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();
// створення автентифікатора для останнього використаного облікового запису
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, такі як msal.Interactive(), msal.Silent() тощо, дивіться OAuth.