# Lightweight library allowing to manage access token its lifetime with caching capability for services accounts with the oauth2 protocol # Installing Nuget > Install nuget package to your awesome project. | Package Name | NuGet | NuGet Install | |-----------------------------------------| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |----------------------------------------------------------------------------:| | OpenHarbor.JwtTokenManager | [![NuGet](https://img.shields.io/nuget/v/OpenHarbor.JwtTokenManager.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/OpenHarbor.JwtTokenManager/) | ```PM> Install-Package OpenHarbor.JwtTokenManager``` | | OpenHarbor.JwtTokenManager.Abstractions | [![NuGet](https://img.shields.io/nuget/v/OpenHarbor.JwtTokenManager.Abstractions.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/OpenHarbor.JwtTokenManager.Abstractions/) | ```PM> Install-Package OpenHarbor.JwtTokenManager.Abstractions``` | # How to use > appsettings.json ```json { "JwtTokenManager": { "TokenEndpoint": "", "ClientId": "", "ClientSecret": "", "Scopes": [] } } ``` > Program.cs ```csharp builder.Services.AddHttpClient(); builder.Services.AddMemoryCache(); // use the IMemoryCache provider you want builder.Services.AddJwtTokenManager(builder.Configuration, "JwtTokenManager"); ``` > Program.cs with deeper configurations ```csharp builder.Services.AddHttpClient(); builder.Services.AddJwtTokenManager(builder.Configuration, "JwtTokenManager", options => { options.Cache(cacheOptions => { cacheOptions.ExpirationOffset = 30; // 15 by default }, // optional to configure your own IMemoryCache provider for the token management provider => provider.GetRequiredService()); options.Configuration(overrideConfiguration => { overrideConfiguration.Scopes = ["offline_access"]; }); }); ``` > Use the JwtTokenManager ```csharp public class MyService(HttpClient httpClient, IJwtTokenManagerService jwtTokenManagerService) { public async Task DoActionAsync(CancellationToken cancellationToken) { var tokenResult = await jwtTokenManagerService.GetTokenAsync(cancellationToken); httpClient.SetJwtAccessToken(tokenResult); ... } } ```