diff --git a/lib/omniauth/strategies/linkedin.rb b/lib/omniauth/strategies/linkedin.rb index 98424fb..f649e44 100755 --- a/lib/omniauth/strategies/linkedin.rb +++ b/lib/omniauth/strategies/linkedin.rb @@ -14,6 +14,8 @@ class LinkedIn < OmniAuth::Strategies::OAuth2 option :scope, 'r_liteprofile r_emailaddress' option :fields, ['id', 'first-name', 'last-name', 'picture-url', 'email-address'] + option :redirect_url + uid do raw_info['id'] end @@ -34,6 +36,9 @@ class LinkedIn < OmniAuth::Strategies::OAuth2 end def callback_url + if options.redirect_url + return options.redirect_url + end full_host + script_name + callback_path end diff --git a/spec/omniauth/strategies/linkedin_spec.rb b/spec/omniauth/strategies/linkedin_spec.rb index 7a4e89b..99522bf 100755 --- a/spec/omniauth/strategies/linkedin_spec.rb +++ b/spec/omniauth/strategies/linkedin_spec.rb @@ -28,6 +28,15 @@ end end + describe '#custom redirect_url' do + let(:redirect_url) {'http://localhost:3001'} + + it 'custom redirect' do + expect(subject.callback_url).to eq('http://localhost:3001') + end + + end + describe '#uid' do before :each do allow(subject).to receive(:raw_info) { Hash['id' => 'uid'] }