XboxAuthNet.Uno
1.0.0
dotnet add package XboxAuthNet.Uno --version 1.0.0
NuGet\Install-Package XboxAuthNet.Uno -Version 1.0.0
<PackageReference Include="XboxAuthNet.Uno" Version="1.0.0" />
paket add XboxAuthNet.Uno --version 1.0.0
#r "nuget: XboxAuthNet.Uno, 1.0.0"
// Install XboxAuthNet.Uno as a Cake Addin #addin nuget:?package=XboxAuthNet.Uno&version=1.0.0 // Install XboxAuthNet.Uno as a Cake Tool #tool nuget:?package=XboxAuthNet.Uno&version=1.0.0
XboxAuthNet.Uno
Microsoft OAuth 2.0 and Xbox Authentication migrated to the Uno Platform
Features
- Microsoft OAuth Code Flow
- Xbox Authentication
- Xbox Sisu Authentication with Proof-of-Possession
Install
Usage: Microsoft OAuth
Currently only auth code flow is supported.
// Initialize API client
var httpClient = new HttpClient();
var apiClient = new MicrosoftOAuthCodeApiClient("<CLIENT-ID>", "<SCOPES>", httpClient); // replace "SCOPES" to XboxAuth.XboxScope for Xbox Authentication
// Authenticate with auth code flow
var codeFlow = new MicrosoftOAuthCodeFlowBuilder(apiClient)
.Build();
MicrosoftOAuthResponse result = await codeFlow.Authenticate();
// `result.AccessToken` can be used on Xbox Authentication
// store `result` variable to refresh token later.
// `MicrosoftOAuthResponse` can be serialized (like json)
Console.WriteLine(result.AccessToken);
Console.WriteLine(result.RefreshToken);
Refresh Microsoft OAuth Token
if (!result.Validate())
{
var newResult = await apiClient.RefreshToken(result.RefreshToken, CancellationToken.None);
Console.WriteLine(newResult.AccessToken);
Console.WriteLine(newResult.RefreshToken);
}
Usage: Xbox Authentication
There are three Xbox authentication methods. You can find a description of each method here.
Xbox Basic Authentication
var httpClient = new HttpClient();
var xboxAuthClient = new XboxAuthClient(httpClient);
var userToken = await xboxAuthClient.RequestUserToken("<microsoft_oauth2_access_token>");
var xsts = await xboxAuthClient.RequestXsts(userToken.Token, "<relying_party>");
Console.WriteLine(xsts.Token);
Xbox Full Authentication
var httpClient = new HttpClient();
var xboxAuthClient = new XboxAuthClient(httpClient);
var userToken = await xboxAuthClient.RequestSignedUserToken(new XboxSignedUserTokenRequest
{
AccessToken = "<microsoft_oauth2_access_token>",
TokenPrefix = AbstractXboxAuthRequest.XboxTokenPrefix
});
var deviceToken = await xboxAuthClient.RequestDeviceToken(new XboxDeviceTokenRequest
{
DeviceType = XboxDeviceTypes.Nintendo,
DeviceVersion = "0.0.0"
});
var titleToken = await xboxAuthClient.RequestTitleToken(new XboxTitleTokenRequest
{
AccessToken = "<microsoft_oauth2_access_token>",
DeviceToken = deviceToken.Token
});
var xsts = await xboxAuthClient.RequestXsts(new XboxXstsRequest
{
UserToken = userToken.Token,
DeviceToken = deviceToken.Token,
TitleToken = titleToken.Token,
RelyingParty = "<relying_party>"
});
Console.WriteLine(xsts.Token);
Xbox Sisu Authentication
var httpClient = new HttpClient();
var xboxAuthClient = new XboxAuthClient(httpClient);
var deviceToken = await xboxAuthClient.RequestDeviceToken(XboxDeviceTypes.Win32, "0.0.0");
var sisuResult = await xboxAuthClient.SisuAuth(new XboxSisuAuthRequest
{
AccessToken = "<microsoft_oauth2_access_token>",
ClientId = XboxGameTitles.MinecraftJava,
DeviceToken = deviceToken.Token,
RelyingParty = "<relying_party>"
});
Console.WriteLine(xsts.Token);
Example
References
These documents explain how Microsoft OAuth 2.0 works.
Desktop application calling a web api (XboxAuthNet implements interactive authentication)
This project was made possible thanks to the contributions of various open-source projects. not used any document from NDA developer program
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-android33.0 is compatible. net7.0-ios was computed. net7.0-ios16.1 is compatible. net7.0-maccatalyst was computed. net7.0-maccatalyst16.1 is compatible. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net7.0-windows10.0.19041 is compatible. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net7.0
- Uno.WinUI (>= 4.9.17)
-
net7.0-android33.0
- Uno.WinUI (>= 4.9.17)
-
net7.0-ios16.1
- Uno.WinUI (>= 4.9.17)
-
net7.0-maccatalyst16.1
- Uno.WinUI (>= 4.9.17)
-
net7.0-windows10.0.19041
- Microsoft.Windows.SDK.BuildTools (>= 10.0.22621.755)
- Microsoft.WindowsAppSDK (>= 1.2.230313.1)
- Uno.WinUI (>= 4.9.17)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on XboxAuthNet.Uno:
Package | Downloads |
---|---|
XboxAuthNet.Game.Uno
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 246 | 7/29/2023 |