code: function temporaryCredentials (done) {
    var strategy = this
    var provider = strategy.provider
    var endpoint = strategy.endpoints.credentials
    var client = strategy.client
    var method = endpoint.method && endpoint.method.toLowerCase()
    var url = endpoint.url
    var header = endpoint.header || 'Authorization'
    var scheme = endpoint.scheme || 'OAuth'
    var accept = endpoint.accept || 'application/x-www-form-urlencoded'
    var key = client.oauth_consumer_key
    var secret = client.oauth_consumer_secret
    var signer = provider.oauth_signature_method || 'PLAINTEXT'
    var realm = provider.realm
    var callback = provider.oauth_callback
    var params = {}
  
    // Initialize request
    var req = request[method || 'post'](url)
  
    // Build request parameters
    params.oauth_consumer_key = key
    params.oauth_signature_method = signer
    params.oauth_timestamp = timestamp()
    params.oauth_nonce = nonce(32)
    params.oauth_callback = callback
    params.oauth_version = '1.0'
  
    // Generate signature (is next line needed for PLAINTEXT?)
    var input = signatureBaseString(method, url, normalizeParameters(params))
    params.oauth_signature = sign(signer, input, secret)
  
    if (realm) { params.realm = realm }
  
    // Set Authorization header
    req.set(header, scheme + ' ' + authorizationHeaderParams(params))
  
    // Set other headers
    req.set('Accept', accept)
    req.set('User-Agent', agent)
  
    // Execute request
    return req.end(function (err, res) {
      if (err) { return done(err) }
      var response = qs.parse(res.text)
  
      if (res.statusCode !== 200) {
        return done(new Error(res.text))
      }
  
      done(null, response)
    })
  }
docs: Temporary Credentials
  https://tools.ietf.org/html/rfc5849#section-2.1