lib/strategy.js
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;
  }

}
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;
  }

}
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 ; } }
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
Internal state during various phases of exchanging tokens & fetching profiles . Either an authorization code or ID token needs to be set .