From 160556f546340b673c00fa116a9818057a2e6f4a Mon Sep 17 00:00:00 2001 From: Ryan Heneise Date: Wed, 29 Mar 2017 10:37:57 -0500 Subject: [PATCH 1/2] Return Drip's unique user ID as the UID, instead of the client id. --- lib/omniauth/strategies/drip.rb | 2 +- spec/omniauth/strategies/drip_spec.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/omniauth/strategies/drip.rb b/lib/omniauth/strategies/drip.rb index ece7cd7..58f583a 100644 --- a/lib/omniauth/strategies/drip.rb +++ b/lib/omniauth/strategies/drip.rb @@ -17,7 +17,7 @@ class Drip < OmniAuth::Strategies::OAuth2 :token_url => 'https://www.getdrip.com/oauth/token' } - uid { access_token.client.id } + uid { raw_info['accounts'][0]['id'] } info do { diff --git a/spec/omniauth/strategies/drip_spec.rb b/spec/omniauth/strategies/drip_spec.rb index a1e3e64..565f0d5 100644 --- a/spec/omniauth/strategies/drip_spec.rb +++ b/spec/omniauth/strategies/drip_spec.rb @@ -26,4 +26,13 @@ end end + context 'uid' do + before :each do + subject.stub(:raw_info) { { 'accounts' => [{ 'id' => '123' }] } } + end + + it 'returns the id from raw_info' do + subject.uid.should eq('123') + end + end end From 8f8b38e87f9ef758d639fcf25c2ff2176a852c5b Mon Sep 17 00:00:00 2001 From: Ryan Heneise Date: Wed, 29 Mar 2017 15:21:54 -0500 Subject: [PATCH 2/2] Fixed `OAuth2::Error, invalid_grant` with OmniAuth::Oauth2 v1.4.0 --- lib/omniauth/strategies/drip.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/omniauth/strategies/drip.rb b/lib/omniauth/strategies/drip.rb index 58f583a..034c229 100644 --- a/lib/omniauth/strategies/drip.rb +++ b/lib/omniauth/strategies/drip.rb @@ -38,6 +38,10 @@ def user_info def raw_info @raw_info ||= JSON.parse(access_token.get("/v2/accounts").body) end + + def callback_url + options[:redirect_uri] || (full_host + script_name + callback_path) + end end end end