omniauth-linkedin-jsapi 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZTJhNTcwZTE1ZmJiNzViZGQ4ODcyNGYyNjUxMDAyZTc0MjFiNzM5NQ==
4
+ ZWY3MmU2ZTEzOTAyOTEzMzAzYjM5NDU2YjhkYTU5YmY2NDMyY2FkNw==
5
5
  data.tar.gz: !binary |-
6
- MDQwMzg0MjI1NWExMmUzOWMwZGY0NzM2ZDZjMGYxN2ZjNmYwNDk4NQ==
6
+ MjBjN2JhNTUzZDI2Y2IzMjFjZGY0NDczZjFhN2RjNDkyYTk0YzhjNg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OGExYzQ3ZGQzMmY2YjNlYjgxM2Y2ZjdjZjVmYzAwYThkMDFhM2RjZDJkY2Mz
10
- ZGRiYTk5NWFmMDRmZmQzZjNkNTRlMjBjMDFjNzFlZmFiMjExMDRmMDA0ZjAz
11
- NDBjZWM5ZjQ3NjA2OTMzY2Q5ZjY5MDg4ZjRhN2I4ZDM5ODdhNWQ=
9
+ ODgzZmZlNGZmZWM2OGQ3NWE3YWQxMjNjNDdjNzVhMzNkMmI2MzljMTYyNDJm
10
+ ODMxZjc5MmRlMjJiMmE2ZDhlYjdjM2E0M2U2ZjU1OWI4NGQ2YzdjNzQwNzU2
11
+ MTRmYTk5ODJkZDQ1MmQ4YTNjMDY3MzlhZmQ3Y2QxMzU3ODE0MTg=
12
12
  data.tar.gz: !binary |-
13
- M2RjMmY1YTU2ODE4ZTljNjlkNjBiZTc0MDAxYTJjOTkxOTk1NDE1M2NkMzJl
14
- MmE2YjVhNjFhNTFlMWJlZDIyNDFlMzdlZWM0MDIyZjUzN2Y1NDQ0MmI2MGMw
15
- YjdkZDAxNTJmMzY4ZDAyZDk4NTJhNDdjMjgxY2JhMzRiY2IyNzE=
13
+ NzZjYmFhMzRlZDdkN2RkOGJiNTZmNTlmNDA3MTMzNzNkNmRmODU0YjNhZmYz
14
+ NGVlOGYzOTg2YjA1ZmE1ZDM2N2MwNjdiNTY5YzlmOGY4ZGNkMzg3Yjg0Y2Nj
15
+ MWI2OGM2NzEyZjA5NWFkYmI0MWQzYWFkODU4ODk4ZWQ2MmM5MTE=
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module LinkedInJsapi
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
@@ -12,6 +12,7 @@ module OmniAuth
12
12
  include OmniAuth::Strategy
13
13
  class NoSecureCookieError < StandardError; end
14
14
  class InvalidSecureCookieError < StandardError; end
15
+ class LinkedinServerError < StandardError; end
15
16
 
16
17
  args [:api_key, :secret_key]
17
18
 
@@ -60,7 +61,23 @@ module OmniAuth
60
61
  end
61
62
 
62
63
  def raw_info
63
- @raw_info ||= MultiJson.decode(access_token.get("/v1/people/~:(#{options.fields.join(',')})?format=json").body)
64
+ @raw_info ||= lambda do
65
+ # Add retry logic to user info fetching because sometimes Linkedin gets back with the following data:
66
+ # raw_info: {
67
+ # errorCode: 0,
68
+ # message: "Could not find person based on: ~",
69
+ # requestId: "***************",
70
+ # status: 404,
71
+ # timestamp: 1393490622830.0
72
+ # }
73
+ try_count = 0
74
+ begin
75
+ raw_info = MultiJson.decode(access_token.get("/v1/people/~:(#{options.fields.join(',')})?format=json").body)
76
+ try_count += 1
77
+ end while raw_info['errorCode'].present? and try_count < 5
78
+ raise LinkedinServerError, raw_info['message'] if raw_info['errorCode'].present?
79
+ raw_info
80
+ end.call
64
81
  end
65
82
 
66
83
  attr_accessor :access_token
@@ -86,6 +103,12 @@ module OmniAuth
86
103
  else
87
104
  raise NoSecureCookieError, 'must pass a `linkedin_oauth_XXX` cookie'
88
105
  end
106
+ rescue NoSecureCookieError => e
107
+ fail!(:invalid_credentials, e)
108
+ rescue InvalidSecureCookieError => e
109
+ fail!(:invalid_credentials, e)
110
+ rescue LinkedinServerError => e
111
+ fail!(:invalid_response, e)
89
112
  rescue ::Timeout::Error => e
90
113
  fail!(:timeout, e)
91
114
  rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-linkedin-jsapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Gong
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-23 00:00:00.000000000 Z
11
+ date: 2014-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth