public async Task ReAuthorizeAsync(IApiTransport transport, OnehubCredentials credentials) { var onehubAuthToken = await _transport.RequestAuthToken(credentials); await _tokenStore.StoreTokenAsync(credentials, onehubAuthToken); transport.ApplyAuthentication(onehubAuthToken); }
private static FormUrlEncodedContent toFormUrlEncodedContent(OnehubCredentials onehubCredentials) { var postData = new Dictionary <string, string> { ["client_id"] = onehubCredentials.ClientId, ["client_secret"] = onehubCredentials.ClientSecret, ["username"] = onehubCredentials.Username, ["password"] = onehubCredentials.Password, ["grant_type"] = "password" }; return(new FormUrlEncodedContent(postData)); }
public async Task <OnehubAuthToken> RequestAuthToken(OnehubCredentials onehubCredentials) { HttpResponseMessage authMessage = await _authHttpClient.PostAsync(new Uri("https://ws-api.onehub.com/oauth/token"), toFormUrlEncodedContent(onehubCredentials)); authMessage.EnsureSuccessStatusCode(); DateTime now = DateTime.UtcNow; JObject authObject = JObject.Parse(await authMessage.Content.ReadAsStringAsync()); return(new OnehubAuthToken { AccessToken = authObject["access_token"].Value <string>(), RefreshToken = authObject["refresh_token"].Value <string>(), AccessTokenIssueDateUtc = now, AccessTokenExpirationUtc = now.AddSeconds(authObject["expires_in"].Value <long>()) }); }
public OnehubClient(IOnehubAuthorization authorization, IApiTransport transport, OnehubCredentials credentials) { _authorization = authorization ?? throw new ArgumentNullException(nameof(authorization)); _transport = transport ?? throw new ArgumentNullException(nameof(transport)); _credentials = credentials ?? throw new ArgumentNullException(nameof(credentials)); }
public Task StoreTokenAsync(OnehubCredentials onehubCredentials, OnehubAuthToken token) { _token = token; return(Task.CompletedTask); }
public Task <OnehubAuthToken> GetTokenAsync(OnehubCredentials onehubCredentials) { return(Task.FromResult(_token)); }