code: function JwtStrategy(options, verify) {
  	passport.Strategy.call(this);
  	this.name = 'passport-auth-jwt';
  
  	this._secret = options['secret'];
  
  	if (!this._secret) {
  		throw new TypeError('[Passport Auth JWT] requires a secret');
  	}
  
  
  	this._verify = verify;
  
  	if (!this._verify) {
  		throw new TypeError('[Passport Auth JWT] requires a verify callback');
  	}
  
  	this._passReqToCallback = true;
  	this._getTokenFromRequest = options.getTokenFromRequest;
  
  	this._verifOpts = {};
  
  	if (options.issuer) {
  		this._verifOpts.issuer = options.issuer;
  	}
  
  	if (options.audience) {
  		this._verifOpts.audience = options.audience;
  	}
  
  	if (options.algorithms) {
  		this._verifOpts.algorithms = options.algorithms;
  	}
  
  	if (options.ignoreExpiration != null) {
  		this._verifOpts.ignoreExpiration = options.ignoreExpiration;
  	}
  }
docs: Strategy constructor
  
  @param options
  secretOrKey: (REQUIRED) String or buffer containing the secret or PEM-encoded public key
  jwtFromRequest: (REQUIRED) Function that accepts a reqeust as the only parameter and returns the either JWT as a string or null
  issuer: If defined issuer will be verified against this value
  audience: If defined audience will be verified against this value
  algorithms: List of strings with the names of the allowed algorithms. For instance, ["HS256", "HS384"].
  ignoreExpiration: if true do not validate the expiration of the token.
  passReqToCallback: If true the, the verify callback will be called with args (request, jwt_payload, done_callback).
  @param verify - Verify callback with args (jwt_payload, done_callback) if passReqToCallback is false,
  (request, jwt_payload, done_callback) if true.