Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private async Task<string> GetAccessTokenAsync()
- {
- string _accessToken = null;
- DateTime _accessTokenExpiry = DateTime.MinValue;
- if (_accessToken != null && DateTime.UtcNow < _accessTokenExpiry)
- {
- return _accessToken;
- }
- using (HttpClient client = new HttpClient())
- {
- var discoveryRequest = new DiscoveryDocumentRequest
- {
- Address = "https://staging.osipi.com/identity",
- Policy = new DiscoveryPolicy
- {
- Authority = "https://identity.osisoft.com",
- ValidateEndpoints = false,
- ValidateIssuerName = false
- }
- };
- var discoveryResponse = await client.GetDiscoveryDocumentAsync(discoveryRequest);
- if (discoveryResponse.IsError)
- throw new InvalidOperationException(discoveryResponse.Error);
- var clientCredentialsTokenRequest = new ClientCredentialsTokenRequest
- {
- Address = discoveryResponse.TokenEndpoint,
- ClientId = "cf8611cc-d754-4a42-802c-b4500506a718",
- ClientSecret = "LyzBLtHl56LOskMfke9l74dk5Y4Cts4kJVxQgWSeRSQ=",
- Scope = "ocsapi"
- };
- DateTime now = DateTime.UtcNow;
- var tokenResponse = await client.RequestClientCredentialsTokenAsync(clientCredentialsTokenRequest);
- if (discoveryResponse.IsError)
- throw new InvalidOperationException(tokenResponse.Error);
- if (string.IsNullOrEmpty(tokenResponse.AccessToken))
- throw new InvalidOperationException("Failed to acquire Access Token");
- _accessToken = tokenResponse.AccessToken;
- // Add a buffer of 30 seconds to the expiration delta.
- _accessTokenExpiry = now.AddSeconds(tokenResponse.ExpiresIn - 30);
- return _accessToken;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement