static async Task <ManagedToken> ExecuteClientCredentialsRequestAsync( ManagedToken managedToken, IServiceProvider serviceProvider, IOAuth2CredentialManager oAuth2CredentialManager, CancellationToken cancellationToken = default) { var creds = await oAuth2CredentialManager.GetOAuth2CredentialsAsync(managedToken.CredentialsKey); var client = new HttpClient(); var response = await client.RequestClientCredentialsTokenAsync( new ClientCredentialsTokenRequest { Address = creds.DiscoveryDocumentResponse.TokenEndpoint, ClientId = creds.ClientId, ClientSecret = creds.ClientSecret, Scope = managedToken.RequestedScope }, cancellationToken); if (response.IsError) { throw new Exception(response.Error); } managedToken.RefreshToken = response.RefreshToken; managedToken.AccessToken = response.AccessToken; managedToken.ExpiresIn = response.ExpiresIn; return(managedToken); }
private async Task <ManagedToken> AddUnSafeManagedTokenAsync(string key, ManagedToken managedToken) { managedToken.StartDate = DateTimeOffset.UtcNow; managedToken.ExpirationDate = managedToken.StartDate.AddSeconds(managedToken.ExpiresIn); await _tokenStorage.UpsertManagedTokenAsync(key, managedToken); return(managedToken); }
public async override Task UpsertManagedTokenAsync(string key, ManagedToken managedToken) { var tokens = GetManagedTokens(); if (tokens == null) { tokens = new Dictionary <string, ManagedToken>(); } tokens[key] = managedToken; UpsertManagedTokens(tokens); }
public async Task <ManagedToken> AddManagedTokenAsync(string key, ManagedToken managedToken) { LockReleaser releaser = await _lock.Lock(new TimeSpan(0, 0, 30)); try { return(await AddUnSafeManagedTokenAsync(key, managedToken)); } finally { releaser.Dispose(); } }
public async Task OnGetAsync() { Creds = await _oAuth2CredentialManager.GetOAuth2CredentialsAsync("test"); if (Creds == null) { await _oAuth2CredentialManager.AddCredentialsAsync("test", new OAuth2Credentials { Authority = "https://demo.identityserver.io", ClientId = "m2m", ClientSecret = "secret" }); // this call will do all the discovery work if it hasn't been done yet. Creds = await _oAuth2CredentialManager.GetOAuth2CredentialsAsync("test"); } ManagedToken = await _globalTokenManager.GetManagedTokenAsync("test", true); }
private async Task <ManagedToken> GetUnSafeManagedTokenAsync(string key) { ManagedToken managedToken = await _tokenStorage.GetManagedTokenAsync(key); return(managedToken); }
public async Task OnGetAsync() { Creds = await _oAuth2CredentialManager.GetOAuth2CredentialsAsync("test"); ManagedToken = await _globalTokenManager.GetManagedTokenAsync("test", true); }
public async Task AddManagedTokenAsync(ManagedToken managedToken) { await _sessionTokenManager.AddManagedTokenAsync(ManagedTokenKey, managedToken); _httpContextAccessor.HttpContext.Session.SetInt32(ManagedTokenKey, 1); // hint that we are tracking }
public abstract Task UpsertManagedTokenAsync(string key, ManagedToken managedToken);