docs: function Strategy(options, verify) {
  
    if (!verify) { throw new TypeError('OAuthStrategy requires a verify callback'); }
  
    options = options || {}
    options.requestTokenURL = options.requestTokenURL || 'https://www.khanacademy.org/api/auth2/request_token'
    options.accessTokenURL = options.accessTokenURL || 'https://www.khanacademy.org/api/auth2/access_token'
    options.userAuthorizationURL = options.userAuthorizationURL || 'https://www.khanacademy.org/api/auth2/authorize'
    options.sessionKey = options.sessionKey || 'oauth:khan'
    if (!options.consumerKey) { throw new TypeError('KhanStrategy requires a consumerKey option'); }
    if (options.consumerSecret === undefined) { throw new TypeError('KhanStrategy requires a consumerSecret option'); }
  
    passport.Strategy.call(this)
  
    this._verify = verify
    this.name = 'khan'
  
    this.khan = Khan(options.consumerKey, options.consumerSecret)
  
    this._userAuthorizationURL = options.userAuthorizationURL
    this._callbackURL = options.callbackURL
    this._key = options.sessionKey
    this._trustProxy = options.proxy
    this._passReqToCallback = options.passReqToCallback
  }