code: function userInfo (token, done) {
    var strategy = this
    var endpoint = this.endpoints.user
    var mapping = this.mapping
    var url = endpoint.url
    var method = endpoint.method && endpoint.method.toLowerCase()
    var auth = endpoint.auth
    var params = endpoint.params
    var accept = endpoint.accept || 'application/json'
  
    // start building the request
    var req = request[method || 'get'](url)
  
    // Authenticate with custom header
    if (auth && auth.header) {
      req.set(auth.header, (auth.scheme === 'Basic')
        ? strategy.base64credentials()
        : [auth.scheme, token].join(' ')
      )
    }
  
    // Authenticate with a querystring parameter
    if (auth && auth.query) {
      req.query(auth.query + '=' + token)
    }
  
    // Additional parameters
    if (params) {
      req.query(params)
    }
  
    // Set other headers
    req.set('accept', accept)
    req.set('user-agent', agent)
  
    // Execute the request
    return req.end(function (err, res) {
      // Handle unsuccessful response
      if (err || res.statusCode !== 200) {
        return done(
          (res && new Error(res.body && res.body.error)) || err
        )
      }
  
      // add the strategy name to response
      res.body.provider = strategy.name
  
      // TODO:
      // - should we fail if we can't derive a provider user id?
  
      // Normalize id field
      res.body.id = (res.body.id)
        ? res.body.id.toString()
        : res.body[mapping.id] && res.body[mapping.id].toString()
  
      // Provide the user
      done(null, res.body)
    })
  }
docs: User Info