public void OAuthCallback(string code, string realmId, string state, string error) { if (string.IsNullOrEmpty(error)) { RealmId = realmId; // Use the request token and auth verifier to get an access token try { // Get OAuth2 Bearer token var tokenResponse = oauthClient.GetBearerTokenAsync(code).Result; AccessToken = tokenResponse.AccessToken; RefreshToken = tokenResponse.RefreshToken; AccessTokenExpiresIn = tokenResponse.RefreshTokenExpiresIn; if (IppOAuthResultEvent != null) { IppOAuthResultEvent.Invoke(AccessToken, RefreshToken, AccessTokenExpiresIn, RealmId, state); } Task.Run(() => { Task.Delay(2000).Wait(); Clean(); }); } catch (Exception ex) { Clean(); throw ex; } } else { if (IppOAuthErrorEvent != null) { IppOAuthErrorEvent.Invoke(error, state); } Task.Run(() => { Task.Delay(2000).Wait(); Clean(); }); } }
internal async void oAuthCallback(string code, string state, string realmId) { // the controller calls this when it has the code so it can get the token try { OAuth2Client client = GetoAuthClient(); TokenResponse result = await client.GetBearerTokenAsync(code); this.AccessToken = result.AccessToken; this.RefreshToken = result.RefreshToken; IppOAuthResultEvent.Invoke(this.AccessToken, this.RefreshToken); await Task.Run( () => { Task.Delay(2000).Wait(); CleanUp(); }); } catch (Exception ex) { CleanUp(); throw ex; } }
public void OAuthCallback(string verifier, string realmId, string dataSource) { RealmId = realmId; DataSource = dataSource; // Retrieve the request token saved earlier IToken theToken = _requestToken; // Use the request token and auth verifier to get an access token IOAuthSession clientSession = CreateSession(); try { IToken accessToken = clientSession.ExchangeRequestTokenForAccessToken(theToken, verifier); AccessToken = accessToken.Token; AccessTokenSecret = accessToken.TokenSecret; IppOAuthResultEvent.Invoke(AccessToken, AccessTokenSecret, RealmId, DataSource); #if NET40 ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(object state) { Thread.Sleep(2000); Clean(); })); #else Task.Run(() => { Task.Delay(2000).Wait(); Clean(); }); #endif } catch (Exception ex) { Clean(); throw ex; } }