omniauth-lyft 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cea8e5a986d40fab33e9279a5aa78d090b283f97
4
- data.tar.gz: 0e4938fa1a491912fde8cfeabe1634e93b1065e9
3
+ metadata.gz: eb92324268160dfb558ef9e14002d1a0e29203b5
4
+ data.tar.gz: 3fa3b1618d46c1e499bd29a6e99f11f5bd50ca51
5
5
  SHA512:
6
- metadata.gz: 56dd1a379253228eee104dfc0dd6f305f5642230a540c4896b5843b91aac95486aca9029c709abfbe68deb95feaa992474a30ac4e8a1ecfca964a19a0333a521
7
- data.tar.gz: 7827d53d48959a6a963eda604f9670af7439929166a96fb59764967951a8d2bb54208be1b8df5e9d89620135e02e9f424b4b7bb5388bb1ac41cbf3aa14bb658d
6
+ metadata.gz: c3e0b93d9cb43708edb57682092de2d2099c1fcc80f1275fc36f384452f8cd6265eb4dbf50ea736cf8ce03568497174e8ce71e8da849f37e7167fe86ff723676
7
+ data.tar.gz: d2a52d7c8290d055a39932db3a4415e86f95ef5dd92f60216477fa5cf539113656edc78a3d1b8c2cad076278f4289b1f790ad39468b95b8677cb0c9ed6ec58ec
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module Lyft
3
- VERSION = '1.0.0'
3
+ VERSION = '1.0.1'
4
4
  end
5
5
  end
@@ -1,45 +1,46 @@
1
1
  require 'omniauth-oauth2'
2
2
 
3
+ # Shamelessly lifted from @rforgeon: https://github.com/rforgeon/dash-api/blob/master/lib/omniauth/strategies/lyft.rb
4
+
3
5
  module OmniAuth
4
6
  module Strategies
5
7
  class Lyft < OmniAuth::Strategies::OAuth2
6
- DEFAULT_SCOPE = 'profile'
7
-
8
- option :client_options, :site => 'https://api.lyft.com',
9
- :authorize_url => 'https://api.lyft.com/oauth/authorize',
10
- :token_url => 'https://api.lyft.com/oauth/token'
11
-
12
- uid { raw_info['uuid'] }
13
-
14
- info do
15
- {
16
- :first_name => raw_info['first_name'],
17
- :last_name => raw_info['last_name'],
18
- :email => raw_info['email'],
19
- :picture => raw_info['picture'],
20
- :promo_code => raw_info['promo_code']
21
- }
22
- end
23
8
 
24
- extra do
25
- {
26
- :raw_info => raw_info
27
- }
28
- end
9
+ # Give your strategy a name.
10
+ option :name, "lyft"
11
+
12
+ # This is where you pass the options you would pass when
13
+ # initializing your consumer from the OAuth gem.
14
+ option :client_options, {
15
+ site: "https://api.lyft.com/v1",
16
+ authorize_url: "https://api.lyft.com/oauth/authorize?response_type=code",
17
+ token_url: 'https://api.lyft.com/oauth/token'
18
+ }
19
+
20
+ option :authorize_options, [:scope]
21
+
22
+ option :token_params, :grant_type => 'authorization_code'
23
+
24
+ # These are called after authentication has succeeded. If
25
+ # possible, you should try to set the UID without making
26
+ # additional calls (if the user id is returned with the token
27
+ # or as a URI parameter). This may not be possible with all
28
+ # providers.
29
+
29
30
 
30
31
  def raw_info
31
- @raw_info ||= access_token.get('/profile').parsed || {}
32
+ @raw_info ||= access_token.get("#{options[:client_options][:site]}/profile").parsed
32
33
  end
33
34
 
34
- def request_phase
35
- options[:authorize_params] = {
36
- :client_id => options['client_id'],
37
- :response_type => 'code',
38
- :scopes => (options['scope'] || DEFAULT_SCOPE)
39
- }
40
-
35
+ def build_access_token
36
+ options.token_params.merge!(:code => request.params["code"], :headers => {'Authorization' => basic_auth_header })
41
37
  super
42
38
  end
39
+
40
+ def basic_auth_header
41
+ "Basic " + Base64.strict_encode64("#{options[:client_id]}:#{options[:client_secret]}")
42
+ end
43
+
43
44
  end
44
45
  end
45
46
  end
@@ -11,7 +11,7 @@ Dotenv.load
11
11
  enable :sessions
12
12
 
13
13
  use OmniAuth::Builder do
14
- provider :lyft, ENV['CLIENT_ID'], ENV['CLIENT_SECRET'] # , :scope => 'profile'
14
+ provider :lyft, 'raJvYFp-ZFhN', 'wRqziw1FYxz2iiL22i7d3HKe3p4qazSh', :scope => 'profile rides.request'
15
15
  end
16
16
 
17
17
  get '/' do
@@ -15,11 +15,11 @@ describe OmniAuth::Strategies::Lyft do
15
15
  end
16
16
 
17
17
  it 'should have correct site' do
18
- expect(subject.options.client_options.site).to eq('https://api.lyft.com')
18
+ expect(subject.options.client_options.site).to eq('https://api.lyft.com/v1')
19
19
  end
20
20
 
21
21
  it 'should have correct authorize url' do
22
- expect(subject.options.client_options.authorize_url).to eq('https://api.lyft.com/oauth/authorize')
22
+ expect(subject.options.client_options.authorize_url).to eq('https://api.lyft.com/oauth/authorize?response_type=code')
23
23
  end
24
24
 
25
25
  it 'should have correct access token url' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-lyft
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-13 00:00:00.000000000 Z
11
+ date: 2017-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth