Sha256: 09e5b33cbabb376177cf1e070c31cb772af2e4713ec952a1f1aabc75e162fb01

Contents?: true

Size: 935 Bytes

Versions: 2

Compression:

Stored size: 935 Bytes

Contents

require 'omniauth/strategies/oauth2'

module OmniAuth
  module Strategies
    class Basecamp < OmniAuth::Strategies::OAuth2
      option :client_options, {
        :site => 'https://launchpad.37signals.com',
        :authorize_url => '/authorization/new',
        :token_url => '/authorization/token'
      }

      def authorize_params
        super.tap do |params|
          params[:response_type] = 'code'
          params[:client_id] = client.id
          params[:redirect_uri] ||= callback_url
          params[:type] = 'web_server'
        end
      end

      def request_phase
        super
      end

      def build_access_token
        token_params = {
          :code => request.params['code'],
          :redirect_uri => callback_url,
          :client_id => client.id,
          :client_secret => client.secret,
          :type => 'web_server'
        }
        client.get_token(token_params)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
omniauth-basecamp-0.2.0 lib/omniauth/strategies/basecamp.rb
omniauth-basecamp-0.1.0 lib/omniauth/strategies/basecamp.rb