/* * Use this operation to update the access token if it has expired */ public OAuthResponse GetAccessToken(OAuthEnvironment environment, String refreshToken, IList <String> scopes) { //Validate request ValidateEnvironmentAndScopes(environment, scopes); ValidateInput("RefreshToken", refreshToken); //Get credentials CredentialUtil.Credentials credentials = GetCredentials(environment); //Format scopes String formattedScopes = OAuth2Util.FormatScopesForRequest(scopes); // Create request payload Dictionary <String, String> payloadParams = new Dictionary <string, string> { { Constants.PAYLOAD_GRANT_TYPE, Constants.PAYLOAD_VALUE_REFRESH_TOKEN }, { Constants.PAYLOAD_REFRESH_TOKEN, refreshToken }, { Constants.PAYLOAD_SCOPE, formattedScopes } }; String requestPayload = OAuth2Util.CreateRequestPayload(payloadParams); OAuthResponse oAuthResponse; //Check for token in cache oAuthResponse = accessTokenCache.GetValue(environment); if (oAuthResponse != null && oAuthResponse.AccessToken != null && oAuthResponse.AccessToken.Token != null) { log.Info("Returning access token from cache for " + environment.ConfigIdentifier()); return(oAuthResponse); } oAuthResponse = FetchToken(environment, requestPayload, TokenType.USER); if (oAuthResponse != null && oAuthResponse.AccessToken != null) { accessTokenCache.UpdateValue(environment, oAuthResponse, oAuthResponse.AccessToken.ExpiresOn); } return(oAuthResponse); }
/* * Use this operation to get an OAuth access token using a client credentials grant. * The access token retrieved from this process is called an Application access token. */ public OAuthResponse GetApplicationToken(OAuthEnvironment environment, IList <String> scopes) { //Validate request ValidateEnvironmentAndScopes(environment, scopes); OAuthResponse oAuthResponse = null; //Check for token in cache if (appTokenCache != null) { oAuthResponse = appTokenCache.GetValue(environment); if (oAuthResponse != null && oAuthResponse.AccessToken != null && oAuthResponse.AccessToken.Token != null) { log.Info("Returning token from cache for " + environment.ConfigIdentifier()); return(oAuthResponse); } } //App token not in cache, fetch it and set into cache String formattedScopes = OAuth2Util.FormatScopesForRequest(scopes); //Prepare request payload Dictionary <String, String> payloadParams = new Dictionary <string, string> { { Constants.PAYLOAD_GRANT_TYPE, Constants.PAYLOAD_VALUE_CLIENT_CREDENTIALS }, { Constants.PAYLOAD_SCOPE, formattedScopes } }; String requestPayload = OAuth2Util.CreateRequestPayload(payloadParams); oAuthResponse = FetchToken(environment, requestPayload, TokenType.APPLICATION); //Update value in cache if (oAuthResponse != null && oAuthResponse.AccessToken != null) { appTokenCache.UpdateValue(environment, oAuthResponse, oAuthResponse.AccessToken.ExpiresOn); } return(oAuthResponse); }