Skip to content

MaratPavlov/.net-token-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NuGet

Build publish to nuget

A simple method to store, retrieve, and refresh tokens for external services.

dotnet add package ExtTokenManager

Usage

Startup

using ExtTokenManager;

// ...

services.UseExtTokenManager();

Initialize

var tokentAccessor = serviceProvider.GetRequiredService<ITokenAccessor>();
tokenAccessor.AddTokenFor<ITestService>(
    // get token function
    () =>
    {
        // get token first time logic...
        new TokenWithRefresh(token, refreshToken);
    },
    // refresh token function
    refreshToken =>
    {
        // refresh token logic using refreshToken input
        return new TokenWithRefresh(newToken, newRefreshToken);
    },
    // lifespan of token
    TimeSpan.FromMinutes(60));

Use in service and get token.

You don't need to worry about the mechanism of its acquisition.

Get ITokenProvider via DI.

private readonly ITokenProvider<ITestService> _tokenProvider;

public TestService(ITokenProvider<ITestService> tokenProvider)
{
    _tokenProvider = tokenProvider;
}

Get the token!

var token = _tokenProvider.GetToken();

Sometimes you want to force refresh

var token = _tokenProvider.RefreshNowAndGetToken();

See full Demo

Contribution

If you have any questions, comments, or suggestions, please open an issue or create a pull request 🙂

License

This project is licensed under the terms of the MIT license.

About

It`s a token manager. Allows configuring the token acquisition and refresh mechanism for external services in one place.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages