code: function(options, authorizationCode, idToken, accessToken) {
    this.options = options;
    this.authorizationCode = authorizationCode;
    this.profile = {};
    this.credentials = {
      id_token: idToken,
      access_token: accessToken
    };
    this.now = Date.now();
    this.apiKey = options.apiKey;
    this.clientId = options.clientId;
    this.clientSecret = options.clientSecret;
    this.redirectUri = options.redirectUri;
    this.fetchProfile = !options.skipProfile;
    this.authorizedPresenters = options.presenters;
    this.passReqToCallback = options.passReqToCallback;
    if (options.noRedirectUri) {
      this.redirectUri = undefined;
    }
  
  }
docs: Internal state during various phases of exchanging tokens & fetching profiles.
  Either an authorization code or ID token needs to be set.
  
  @constructor
  @param {Object} options Request-specific options
  @param {String} authorizationCode Authorization code to exchange, if available
  @Param {String} idToken ID token to verify, if available
  @Param {String} accessToken Access token to verify, if available