Name

global.OAuthAccessToken

Description

Script Include to verify the availability of the OAuthAccessToken on Db.

Script

var OAuthAccessToken = Class.create();
OAuthAccessToken.prototype = Object.extendsObject(AbstractAjaxProcessor, {
  
  isAccessTokenAvailable: function() {
  	// Create an output tag called result
  	var result = this.newItem('result');
  	
  	// Get from the parameters
  	var requestor = this.getParameter('requestor');
  	var personal = this.getParameter('personal');
  	var oauth_provider_profile_id = this.getParameter('oauth_provider_profile_id');
  	
  	var oAuthClient = new  sn_auth.GlideOAuthClient();

  	if (personal != null && personal.toLowerCase() == 'true') {
  		oAuthClient.setPersonal(true);
  	}

  	var token = oAuthClient.getToken(requestor, oauth_provider_profile_id);
  	
  	if (token) {
  		if(token.getAccessToken()) {
  			gs.log('OAuth Access token is available, requestor=' + requestor + ', oauth_profile_id=' + oauth_provider_profile_id);
  			result.setAttribute('isToken', 'true');
  			result.setAttribute('tokenExpiresInSecs', token.getExpiresIn());
  			var tokenExpiresInMs = new GlideTime(token.getExpiresIn() * 1000);
  			var tokenExpiresOnDate = new GlideDateTime();
  			tokenExpiresOnDate.add(tokenExpiresInMs);
  			result.setAttribute('tokenExpiresOnDate', tokenExpiresOnDate.getDisplayValue());
  		} else {
  			result.setAttribute('isToken', 'false');
  		}
  		
  		if (token.getRefreshToken()) {
  			gs.log('OAuth Refresh token is available, requestor=' + requestor + ', oauth_profile_id=' + oauth_provider_profile_id);
  			result.setAttribute('isRefreshToken', 'true');
  			result.setAttribute('refreshTokenExpiresInSecs', token.getRefreshTokenExpiresIn());
  			
  			var refreshExpiresInMs = new GlideTime(token.getRefreshTokenExpiresIn() * 1000);
  			var refreshExpiresOnDate = new GlideDateTime();
  			refreshExpiresOnDate.add(refreshExpiresInMs);
  			result.setAttribute('refreshTokenExpiresOnDate', refreshExpiresOnDate.getDisplayValue());
  		} else {
  			result.setAttribute('isRefreshToken', 'false');
  		}
  	} else {
  		result.setAttribute('isToken', 'false');
  		result.setAttribute('isRefreshToken', 'false');
  	}
  },
  
  type: 'OAuthAccessToken'
});

Sys ID

08cbde338f20020026935f2a37bdee2b

Offical Documentation

Official Docs: