Перейти до змісту

OAuth

Описує спосіб виконання Microsoft OAuth через MSAL.

Перед використанням ви ОБОВ'ЯЗКОВО повинні ініціалізувати IPublicClientApplication за допомогою ВАШОГО CLIENT ID!

Приклад

JELoginHandler з MSAL OAuth.

using XboxAuthNet.Game.Msal;

var app = await MsalClientHelper.BuildApplicationWithCache("<CLIENT-ID>");
var loginHandler = JELoginHandlerBuilder.BuildDefault();

var authenticator = loginHandler.CreateAuthenticatorWithNewAccount(default);
authenticator.AddMsalOAuth(app, msal => msal.Interactive());
authenticator.AddXboxAuthForJE(xbox => xbox.Basic());
authenticator.AddJEAuthenticator();
var session = await authenticator.ExecuteForLauncherAsync();

Interactive

authenticator.AddMsalOAuth(app, msal => msal.Interactive());

Запитує в користувачів введення даних облікового запису Microsoft. Спосіб відображення сторінки входу визначається за допомогою MSAL.

EmbeddedWebView

authenticator.AddMsalOAuth(app, msal => msal.EmbeddedWebView());

Пропонує користувачеві увійти в обліковий запис Microsoft. Використовує WebView2 для відображення сторінки входу.

SystemBrowser

authenticator.AddMsalOAuth(app, msal => msal.SystemBrowser());

Пропонує користувачеві увійти в обліковий запис Microsoft. Відкриває системний браузер за замовчуванням для відображення сторінки входу.

Silent

authenticator.AddMsalOAuth(app, msal => msal.Silent());

Намагається виконати вхід за допомогою даних облікового запису, збережених у кеші MSAL.

DeviceCode

authenticator.AddMsalOAuth(app, msal => msal.DeviceCode(deviceCode =>
{
    Console.WriteLine(deviceCode.Message);
    return Task.CompletedTask;
}));

Спроба виконати вхід за допомогою методу DeviceCode (код пристрою). Цей метод не вимагає наявності веббраузера або графічного інтерфейсу (UI) на клієнтському пристрої, але дозволяє увійти з іншого пристрою.

Якщо ви створюєте лаунчер, який працює лише в консольному середовищі або без графічного інтерфейсу, використовуйте цей метод для входу. Вхід можна виконати з абсолютно іншого пристрою, ніж той, на якому запущено ваш лаунчер (наприклад, з мобільного телефону).

Приклад коду виводить у консоль наступне повідомлення:

To sign in, use a web browser to open the page https://www.microsoft.com/link and enter the code XXXXXXXX to authenticate.

FromResult

var result = await app.AcquireTokenInteractive(MsalClientHelper.XboxScopes).ExecuteAsync();
authenticator.AddMsalOAuth(app, msal => msal.FromResult(result));

Використовує готовий результат автентифікації MSAL.

Довідник API