 		for name, value of request_token.query
 			param = @_replaceParam value, @_params, state:state.id, callback:config.host_url+config.relbase, parameters
 			query[name] = param if param
-		headers = {}
-		headers["Accept"] = short_formats[request_token.format] || request_token.format if request_token.format
-		for name, value of request_token.headers
-			param = @_replaceParam value, @_params, {}, parameters
-			headers[name] = param if param
+		headers = @_createHeaders(opts.options?.request_token, parameters)
 		options =
 			url: request_token.url
 			method: request_token.method?.toUpperCase() || "POST"

				consumer_key: parameters.client_id
				consumer_secret: parameters.client_secret
		delete query.oauth_callback

		options.headers = headers if Object.keys(headers).length
		if options.method == 'POST'
			options.form = query
		else
			options.qs = query

		# do request to request_token
		request options, (e, r, body) =>
			return callback(e) if e
			responseParser = new OAuth1ResponseParser(r, body, headers["Accept"], 'request_token')
			return callback(responseParser.error) if responseParser.error

			dbstates.setToken state.id, responseParser.oauth_token_secret, (e, r) =>
				@_dbSetTokenCallback(e, r, state, provider, parameters, opts, responseParser, callback)

	_dbSetTokenCallback: (e, r, state, provider, parameters, opts, responseParser, callback) ->
		return callback e if e
		authorize = provider.oauth1.authorize
		query = {}
		if typeof opts.options?.authorize == 'object'

		query.oauth_token = responseParser.oauth_token
		url = @_replaceParam authorize.url, @_params, {}, parameters
		url += "?" + querystring.stringify query
		return url

	access_token: (state, req, callback) ->
		if not req.params.oauth_token && not req.params.error
