omniauth-paypal-oauth2 1.4.15 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80958fffe707e75dfb5e29786365dcee33d9dd1f457c45ae2db036d2ffef6442
4
- data.tar.gz: a701b23656f6e52ff593f0dfff415c3519a63a69ae88a338c648521ec48f460f
3
+ metadata.gz: 5dfa9136b8e815a484605df0867003a2b272b27dee91ae6b8a9e900c7765b246
4
+ data.tar.gz: 88f2ac99df28dd63fb83c02e301c065dc504753b5c5f134bd708387e07e6944e
5
5
  SHA512:
6
- metadata.gz: 2474171bd53235015a43218caa9bb89cf0dbe24baf57cf6b0ee8e595a0630494fd455206e3ffddb11b3fb5682e73ef78dd4ae0e4873aedc07ad9ca0e7d7e6cf7
7
- data.tar.gz: 2b4c4d05c78d31a5e4aeecade2dc83d331d85d4a31fb5224d29517b459e926230395190d6ad0f8e57f68c5561d1bfcfef53f12cdf777519ac1143de937ceb55b
6
+ metadata.gz: 17a912c2a22c5afc05e9fe535a1937ab68625e1dd0bc7b4bc4732d54750d9828accee16651df25cce65a8e6f05a59d05a968dd09b933c253f855dcf87bf1a462
7
+ data.tar.gz: 49bb670b8e5f275743ac03b06e5ab0d22dca281f4f2f489f192dbd4ae274343d3ae6c514edac4be771b746f1e9d1a3d15807d7c294fe7501e7fbe52f3732b0ee
data/README.md CHANGED
@@ -91,13 +91,13 @@ config.omniauth :paypal_oauth2, 'PAYPAL_CLIENT_ID', 'PAYPAL_CLIENT_SECRET'
91
91
  Then add the following to 'config/routes.rb' so the callback routes are defined.
92
92
 
93
93
  ```ruby
94
- devise_for :users, :controllers => { :omniauth_callbacks => 'users/omniauth_callbacks' }
94
+ devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' }
95
95
  ```
96
96
 
97
97
  Make sure your model is omniauthable. Generally this is `'/app/models/user.rb'`
98
98
 
99
99
  ```ruby
100
- devise :omniauthable, :omniauth_providers => [:paypal_oauth2]
100
+ devise :omniauthable, omniauth_providers: [:paypal_oauth2]
101
101
  ```
102
102
 
103
103
  Then make sure your callbacks controller is setup.
@@ -109,8 +109,8 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
109
109
  @user = User.from_omniauth(request.env['omniauth.auth'])
110
110
 
111
111
  if @user.persisted?
112
- flash[:notice] = I18n.t 'devise.omniauth_callbacks.success', :kind => 'PayPal'
113
- sign_in_and_redirect @user, :event => :authentication
112
+ flash[:notice] = I18n.t('devise.omniauth_callbacks.success', kind: 'PayPal')
113
+ sign_in_and_redirect(@user, event: :authentication)
114
114
  else
115
115
  session['devise.paypal_data'] = request.env['omniauth.auth']
116
116
  redirect_to new_user_registration_url
@@ -124,7 +124,7 @@ and bind to or create the user
124
124
  ```ruby
125
125
  def self.from_omniauth(access_token)
126
126
  data = access_token.info
127
- user = User.where(:email => data['email']).first
127
+ user = User.where(email: data['email']).first
128
128
 
129
129
  # Uncomment the section below if you want users to be created if they don't exist
130
130
  # unless user
@@ -156,8 +156,6 @@ If you click from your [Applications Dashboard](https://developer.paypal.com/dev
156
156
 
157
157
  * `Personal Information`:
158
158
  * `Full name`: Permits the Name of the customer.
159
- * `Date of birth`: Permits the date of birth of the customer.
160
- * `Age range`: Permits an approximate age range of the customer.
161
159
 
162
160
  * `Address Information`:
163
161
  * `Email address`: Permits the email address of the customer.
@@ -166,15 +164,9 @@ If you click from your [Applications Dashboard](https://developer.paypal.com/dev
166
164
  * `State`: Permits the state in which the city is located.
167
165
  * `Country`: Permits the country in which both state and city are located.
168
166
  * `Zip code`: Permits the Zip code of the customer.
169
- * `Phone`: Permits the phone number of the customer.
170
167
 
171
168
  * `Account Information`:
172
169
  * `Account status (verified)`: Permits a boolean which indicates whether the customer is verified by PayPal or not.
173
- * `Account type`: Permits a string which indicates the account type of the PayPal customer (e.g.: PERSONAL, BUSINESS).
174
- * `Account creation date`: Permits the date on which the PayPal account got created.
175
- * `Time zone`: Permits the time zone in which the PayPal customer is located.
176
- * `Locale`: Permits a locale string which indicates where the PayPal customer is.
177
- * `Language`: Permits the language the customer uses on PayPal.
178
170
 
179
171
  ### Auth Hash
180
172
 
@@ -182,46 +174,39 @@ Here's an example of an authentication hash available in the callback by accessi
182
174
 
183
175
  ```ruby
184
176
  {
185
- provider: 'paypal',
186
- uid: 'bathjJwvdhKjgfgh8Jd745J7dh5Qkgflbnczd65dfnw',
187
- info: {
188
- name: 'John Smith',
189
- email: 'example@example.com',
190
- first_name: 'John',
191
- last_name: 'Smith',
192
- given_name: 'John',
193
- family_name: 'Smith',
194
- location: 'Moscow',
195
- phone: '71234567890'
177
+ provider: 'paypal',
178
+ uid: 'bathjJwvdhKjgfgh8Jd745J7dh5Qkgflbnczd65dfnw',
179
+ info: {
180
+ name: 'John Smith',
181
+ email: 'example@example.com',
182
+ location: 'Moscow'
183
+ },
184
+ credentials: {
185
+ token: 'token',
186
+ refresh_token: 'refresh_token',
187
+ expires_at: 1355082790,
188
+ expires: true
189
+ },
190
+ extra: {
191
+ account_creation_date: '2008-04-21',
192
+ account_type: 'PERSONAL',
193
+ user_id: 'https://www.paypal.com/webapps/auth/identity/user/bathjJwvdhKjgfgh8Jd745J7dh5Qkgflbnczd65dfnw',
194
+ address: {
195
+ country: 'US',
196
+ locality: 'San Jose',
197
+ postal_code: '95131',
198
+ region: 'CA',
199
+ street_address: '1 Main St'
196
200
  },
197
- credentials: {
198
- token: 'token',
199
- refresh_token: 'refresh_token',
200
- expires_at: 1355082790,
201
- expires: true
202
- },
203
- extra: {
204
- account_creation_date: '2008-04-21',
205
- account_type: 'PERSONAL',
206
- user_id: 'https://www.paypal.com/webapps/auth/identity/user/bathjJwvdhKjgfgh8Jd745J7dh5Qkgflbnczd65dfnw',
207
- address: {
208
- country: 'US',
209
- locality: 'San Jose',
210
- postal_code: '95131',
211
- region: 'CA',
212
- street_address: '1 Main St'
213
- },
214
- language: 'en_US',
215
- locale: 'en_US',
216
- verified_account: true,
217
- zoneinfo: 'America/Los_Angeles',
218
- age_range: '31-35',
219
- birthday: '1982-01-01'
220
- }
201
+ language: 'en_US',
202
+ locale: 'en_US',
203
+ verified_account: true,
204
+ zoneinfo: 'America/Los_Angeles'
205
+ }
221
206
  }
222
207
  ```
223
208
 
224
- For more details see the PayPal [List Of Attributes](https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/detailed/#attributes).
209
+ For more details see the PayPal [List Of Attributes](https://developer.paypal.com/docs/api/identity/v1/#userinfo).
225
210
 
226
211
  ---
227
212
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniAuth
4
4
  module PaypalOauth2
5
- VERSION = '1.4.15'
5
+ VERSION = '2.0.0'
6
6
  end
7
7
  end
@@ -5,7 +5,7 @@ require 'omniauth-oauth2'
5
5
  module OmniAuth
6
6
  module Strategies
7
7
  class PaypalOauth2 < OmniAuth::Strategies::OAuth2
8
- DEFAULT_SCOPE = 'email,profile'
8
+ DEFAULT_SCOPE = 'openid email profile'
9
9
  DEFAULT_RESPONSE_TYPE = 'code'
10
10
  SANDBOX_SITE = 'https://api.sandbox.paypal.com'
11
11
  SANDBOX_AUTHORIZE_URL = 'https://www.sandbox.paypal.com/signin/authorize'
@@ -30,13 +30,10 @@ module OmniAuth
30
30
  info do
31
31
  prune!(
32
32
  'name' => raw_info['name'],
33
- 'email' => raw_info['email'],
34
- 'first_name' => raw_info['given_name'],
35
- 'last_name' => raw_info['family_name'],
36
- 'given_name' => raw_info['given_name'],
37
- 'family_name' => raw_info['family_name'],
38
- 'location' => (raw_info['address'] || {})['locality'],
39
- 'phone' => raw_info['phone_number']
33
+ 'email' => (raw_info['emails'].detect do |email|
34
+ email['primary']
35
+ end || {})['value'],
36
+ 'location' => (raw_info['address'] || {})['locality']
40
37
  )
41
38
  end
42
39
 
@@ -49,9 +46,7 @@ module OmniAuth
49
46
  'language' => raw_info['language'],
50
47
  'zoneinfo' => raw_info['zoneinfo'],
51
48
  'locale' => raw_info['locale'],
52
- 'account_creation_date' => raw_info['account_creation_date'],
53
- 'age_range' => raw_info['age_range'],
54
- 'birthday' => raw_info['birthday']
49
+ 'account_creation_date' => raw_info['account_creation_date']
55
50
  )
56
51
  end
57
52
 
@@ -81,11 +76,11 @@ module OmniAuth
81
76
  private
82
77
 
83
78
  def load_identity
84
- access_token.options[:mode] = :query
79
+ access_token.options[:mode] = :header
85
80
  access_token.options[:param_name] = :access_token
86
81
  access_token.options[:grant_type] = :authorization_code
87
82
  access_token.get(
88
- '/v1/identity/openidconnect/userinfo', params: { schema: 'openid' }
83
+ '/v1/identity/oauth2/userinfo', params: { schema: 'paypalv1.1' }
89
84
  ).parsed || {}
90
85
  end
91
86
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-paypal-oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.15
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonas Hübotter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-07 00:00:00.000000000 Z
11
+ date: 2019-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json