ManiaAPI.TrackmaniaAPI.Extensions.Hosting
2.2.0
dotnet add package ManiaAPI.TrackmaniaAPI.Extensions.Hosting --version 2.2.0
NuGet\Install-Package ManiaAPI.TrackmaniaAPI.Extensions.Hosting -Version 2.2.0
<PackageReference Include="ManiaAPI.TrackmaniaAPI.Extensions.Hosting" Version="2.2.0" />
<PackageVersion Include="ManiaAPI.TrackmaniaAPI.Extensions.Hosting" Version="2.2.0" />
<PackageReference Include="ManiaAPI.TrackmaniaAPI.Extensions.Hosting" />
paket add ManiaAPI.TrackmaniaAPI.Extensions.Hosting --version 2.2.0
#r "nuget: ManiaAPI.TrackmaniaAPI.Extensions.Hosting, 2.2.0"
#addin nuget:?package=ManiaAPI.TrackmaniaAPI.Extensions.Hosting&version=2.2.0
#tool nuget:?package=ManiaAPI.TrackmaniaAPI.Extensions.Hosting&version=2.2.0
ManiaAPI.TrackmaniaAPI.Extensions.Hosting
Provides Trackmania OAuth2 authorization for ASP.NET Core applications and an efficient way to inject TrackmaniaAPI
into your application.
Setup TrackmaniaAPI
injection
TrackmaniaAPI
will be available as a transient, with a singleton handling of credentials. This will make sure the HttpClient
beneath is handled properly.
Providing options.Credentials
is optional, but setting it will automatically authorize on the first request and maintain that connection, so you don't have to call AuthorizeAsync
.
using ManiaAPI.TrackmaniaAPI.Extensions.Hosting;
builder.Services.AddTrackmaniaAPI(options =>
{
options.Credentials = new ManiaPlanetAPICredentials(
builder.Configuration["Trackmania:ClientId"]!,
builder.Configuration["Trackmania:ClientSecret"]!);
});
Setup OAuth2
For the list of scopes, see the API docs. Generate your credentials here. The redirect URL is the /signin-trackmania
relative to the web root, for example: https://localhost:7864/signin-trackmania
.
using ManiaAPI.TrackmaniaAPI.Extensions.Hosting;
using ManiaAPI.TrackmaniaAPI.Extensions.Hosting.Authentication;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie()
.AddTrackmania(options =>
{
options.ClientId = builder.Configuration["OAuth2:Trackmania:ClientId"]!;
options.ClientSecret = builder.Configuration["OAuth2:Trackmania:ClientSecret"]!;
options.Scope.Add("clubs");
});
var app = builder.Build();
app.MapGet("/login", () =>
{
return TypedResults.Challenge(new() { RedirectUri = "/" }, [TrackmaniaAuthenticationDefaults.AuthenticationScheme]);
});
app.Run();
You can inject TrackmaniaAPI
if you create a special HTTP client handler to provide the token from HttpContext.GetTokenAsync("access_token")
and use that to get more information from the authorized user. Don't forget to set SaveTokens = true
in options.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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 is compatible. 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. |
-
net8.0
- ManiaAPI.TrackmaniaAPI (>= 2.2.0)
-
net9.0
- ManiaAPI.TrackmaniaAPI (>= 2.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.