omniauth-auth0 2.0.0 → 3.1.0

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.
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+
4
+ describe OmniAuth::Auth0::Telemetry do
5
+
6
+ let(:test_class) { Class.new.extend(OmniAuth::Auth0::Telemetry) }
7
+
8
+ describe 'telemetry' do
9
+
10
+ it 'should have the correct SDK name' do
11
+ expect(test_class.telemetry).to have_key(:name)
12
+ expect(test_class.telemetry[:name]).to eq('omniauth-auth0')
13
+ end
14
+
15
+ it 'should have the correct SDK version' do
16
+ expect(test_class.telemetry).to have_key(:version)
17
+ expect(test_class.telemetry[:version]).to eq(OmniAuth::Auth0::VERSION)
18
+ end
19
+
20
+ it 'should include the Ruby version' do
21
+ expect(test_class.telemetry).to have_key(:env)
22
+ expect(test_class.telemetry[:env]).to have_key(:ruby)
23
+ expect(test_class.telemetry[:env][:ruby]).to eq(RUBY_VERSION)
24
+ end
25
+
26
+ end
27
+
28
+ end
@@ -1,4 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
4
+ require 'jwt'
5
+ require 'multi_json'
6
+
7
+ OmniAuth.config.allowed_request_methods = [:get, :post]
2
8
 
3
9
  RSpec.shared_examples 'site has valid domain url' do |url|
4
10
  it { expect(subject.site).to eq(url) }
@@ -23,7 +29,12 @@ describe OmniAuth::Strategies::Auth0 do
23
29
  end
24
30
 
25
31
  describe 'client_options' do
26
- let(:subject) { auth0.client }
32
+ let(:subject) { OmniAuth::Strategies::Auth0.new(
33
+ application,
34
+ client_id,
35
+ client_secret,
36
+ domain_url
37
+ ).client }
27
38
 
28
39
  context 'domain with https' do
29
40
  let(:domain_url) { 'https://samples.auth0.com' }
@@ -78,6 +89,127 @@ describe OmniAuth::Strategies::Auth0 do
78
89
  expect(redirect_url).to have_query('state')
79
90
  expect(redirect_url).to have_query('client_id')
80
91
  expect(redirect_url).to have_query('redirect_uri')
92
+ expect(redirect_url).not_to have_query('auth0Client')
93
+ expect(redirect_url).not_to have_query('connection')
94
+ expect(redirect_url).not_to have_query('connection_scope')
95
+ expect(redirect_url).not_to have_query('prompt')
96
+ expect(redirect_url).not_to have_query('screen_hint')
97
+ expect(redirect_url).not_to have_query('login_hint')
98
+ expect(redirect_url).not_to have_query('organization')
99
+ expect(redirect_url).not_to have_query('invitation')
100
+ end
101
+
102
+ it 'redirects to hosted login page' do
103
+ get 'auth/auth0?connection=abcd'
104
+ expect(last_response.status).to eq(302)
105
+ redirect_url = last_response.headers['Location']
106
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
107
+ expect(redirect_url).to have_query('response_type', 'code')
108
+ expect(redirect_url).to have_query('state')
109
+ expect(redirect_url).to have_query('client_id')
110
+ expect(redirect_url).to have_query('redirect_uri')
111
+ expect(redirect_url).to have_query('connection', 'abcd')
112
+ expect(redirect_url).not_to have_query('auth0Client')
113
+ expect(redirect_url).not_to have_query('connection_scope')
114
+ expect(redirect_url).not_to have_query('prompt')
115
+ expect(redirect_url).not_to have_query('screen_hint')
116
+ expect(redirect_url).not_to have_query('login_hint')
117
+ expect(redirect_url).not_to have_query('organization')
118
+ expect(redirect_url).not_to have_query('invitation')
119
+ end
120
+
121
+ it 'redirects to the hosted login page with connection_scope' do
122
+ get 'auth/auth0?connection_scope=identity_provider_scope'
123
+ expect(last_response.status).to eq(302)
124
+ redirect_url = last_response.headers['Location']
125
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
126
+ expect(redirect_url)
127
+ .to have_query('connection_scope', 'identity_provider_scope')
128
+ end
129
+
130
+ it 'redirects to hosted login page with prompt=login' do
131
+ get 'auth/auth0?prompt=login'
132
+ expect(last_response.status).to eq(302)
133
+ redirect_url = last_response.headers['Location']
134
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
135
+ expect(redirect_url).to have_query('response_type', 'code')
136
+ expect(redirect_url).to have_query('state')
137
+ expect(redirect_url).to have_query('client_id')
138
+ expect(redirect_url).to have_query('redirect_uri')
139
+ expect(redirect_url).to have_query('prompt', 'login')
140
+ expect(redirect_url).not_to have_query('auth0Client')
141
+ expect(redirect_url).not_to have_query('connection')
142
+ expect(redirect_url).not_to have_query('login_hint')
143
+ expect(redirect_url).not_to have_query('organization')
144
+ expect(redirect_url).not_to have_query('invitation')
145
+ end
146
+
147
+ it 'redirects to hosted login page with screen_hint=signup' do
148
+ get 'auth/auth0?screen_hint=signup'
149
+ expect(last_response.status).to eq(302)
150
+ redirect_url = last_response.headers['Location']
151
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
152
+ expect(redirect_url).to have_query('response_type', 'code')
153
+ expect(redirect_url).to have_query('state')
154
+ expect(redirect_url).to have_query('client_id')
155
+ expect(redirect_url).to have_query('redirect_uri')
156
+ expect(redirect_url).to have_query('screen_hint', 'signup')
157
+ expect(redirect_url).not_to have_query('auth0Client')
158
+ expect(redirect_url).not_to have_query('connection')
159
+ expect(redirect_url).not_to have_query('login_hint')
160
+ expect(redirect_url).not_to have_query('organization')
161
+ expect(redirect_url).not_to have_query('invitation')
162
+ end
163
+
164
+ it 'redirects to hosted login page with organization=TestOrg and invitation=TestInvite' do
165
+ get 'auth/auth0?organization=TestOrg&invitation=TestInvite'
166
+ expect(last_response.status).to eq(302)
167
+ redirect_url = last_response.headers['Location']
168
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
169
+ expect(redirect_url).to have_query('response_type', 'code')
170
+ expect(redirect_url).to have_query('state')
171
+ expect(redirect_url).to have_query('client_id')
172
+ expect(redirect_url).to have_query('redirect_uri')
173
+ expect(redirect_url).to have_query('organization', 'TestOrg')
174
+ expect(redirect_url).to have_query('invitation', 'TestInvite')
175
+ expect(redirect_url).not_to have_query('auth0Client')
176
+ expect(redirect_url).not_to have_query('connection')
177
+ expect(redirect_url).not_to have_query('connection_scope')
178
+ expect(redirect_url).not_to have_query('prompt')
179
+ expect(redirect_url).not_to have_query('screen_hint')
180
+ expect(redirect_url).not_to have_query('login_hint')
181
+ end
182
+
183
+ it 'redirects to hosted login page with login_hint=example@mail.com' do
184
+ get 'auth/auth0?login_hint=example@mail.com'
185
+ expect(last_response.status).to eq(302)
186
+ redirect_url = last_response.headers['Location']
187
+ expect(redirect_url).to start_with('https://samples.auth0.com/authorize')
188
+ expect(redirect_url).to have_query('response_type', 'code')
189
+ expect(redirect_url).to have_query('state')
190
+ expect(redirect_url).to have_query('client_id')
191
+ expect(redirect_url).to have_query('redirect_uri')
192
+ expect(redirect_url).to have_query('login_hint', 'example@mail.com')
193
+ expect(redirect_url).not_to have_query('auth0Client')
194
+ expect(redirect_url).not_to have_query('connection')
195
+ expect(redirect_url).not_to have_query('connection_scope')
196
+ expect(redirect_url).not_to have_query('prompt')
197
+ expect(redirect_url).not_to have_query('screen_hint')
198
+ expect(redirect_url).not_to have_query('organization')
199
+ expect(redirect_url).not_to have_query('invitation')
200
+ end
201
+
202
+ def session
203
+ session_cookie = last_response.cookies['rack.session'].first
204
+ session_data, _, _ = session_cookie.rpartition('--')
205
+ decoded_session_data = Base64.decode64(session_data)
206
+ Marshal.load(decoded_session_data)
207
+ end
208
+
209
+ it "stores session['authorize_params'] as a plain Ruby Hash" do
210
+ get '/auth/auth0'
211
+
212
+ expect(session['authorize_params'].class).to eq(::Hash)
81
213
  end
82
214
 
83
215
  describe 'callback' do
@@ -85,7 +217,7 @@ describe OmniAuth::Strategies::Auth0 do
85
217
  let(:expires_in) { 2000 }
86
218
  let(:token_type) { 'bearer' }
87
219
  let(:refresh_token) { 'refresh token' }
88
- let(:id_token) { 'id token' }
220
+ let(:telemetry_value) { Class.new.extend(OmniAuth::Auth0::Telemetry).telemetry_encoded }
89
221
 
90
222
  let(:user_id) { 'user identifier' }
91
223
  let(:state) { SecureRandom.hex(8) }
@@ -95,6 +227,20 @@ describe OmniAuth::Strategies::Auth0 do
95
227
  let(:email) { 'mail@mail.com' }
96
228
  let(:email_verified) { true }
97
229
 
230
+ let(:id_token) do
231
+ payload = {}
232
+ payload['sub'] = user_id
233
+ payload['iss'] = "#{domain_url}/"
234
+ payload['aud'] = client_id
235
+ payload['name'] = name
236
+ payload['nickname'] = nickname
237
+ payload['picture'] = picture
238
+ payload['email'] = email
239
+ payload['email_verified'] = email_verified
240
+
241
+ JWT.encode payload, client_secret, 'HS256'
242
+ end
243
+
98
244
  let(:oauth_response) do
99
245
  {
100
246
  access_token: access_token,
@@ -112,20 +258,11 @@ describe OmniAuth::Strategies::Auth0 do
112
258
  }
113
259
  end
114
260
 
115
- let(:basic_user_info) { { sub: user_id } }
116
- let(:oidc_user_info) do
117
- {
118
- sub: user_id,
119
- name: name,
120
- nickname: nickname,
121
- email: email,
122
- picture: picture,
123
- email_verified: email_verified
124
- }
125
- end
261
+ let(:basic_user_info) { { "sub" => user_id, "name" => name } }
126
262
 
127
263
  def stub_auth(body)
128
264
  stub_request(:post, 'https://samples.auth0.com/oauth/token')
265
+ .with(headers: { 'Auth0-Client' => telemetry_value })
129
266
  .to_return(
130
267
  headers: { 'Content-Type' => 'application/json' },
131
268
  body: MultiJson.encode(body)
@@ -149,7 +286,9 @@ describe OmniAuth::Strategies::Auth0 do
149
286
  WebMock.reset!
150
287
  end
151
288
 
152
- let(:subject) { MultiJson.decode(last_response.body) }
289
+ let(:subject) do
290
+ MultiJson.decode(last_response.body)
291
+ end
153
292
 
154
293
  context 'basic oauth' do
155
294
  before do
@@ -168,10 +307,14 @@ describe OmniAuth::Strategies::Auth0 do
168
307
  expect(subject['credentials']['expires_at']).to_not be_nil
169
308
  end
170
309
 
171
- it 'has basic values' do
310
+ it 'has basic values' do
172
311
  expect(subject['provider']).to eq('auth0')
173
312
  expect(subject['uid']).to eq(user_id)
174
- expect(subject['info']['name']).to eq(user_id)
313
+ expect(subject['info']['name']).to eq(name)
314
+ end
315
+
316
+ it 'should use the user info endpoint' do
317
+ expect(subject['extra']['raw_info']).to eq(basic_user_info)
175
318
  end
176
319
  end
177
320
 
@@ -197,7 +340,6 @@ describe OmniAuth::Strategies::Auth0 do
197
340
  context 'oidc' do
198
341
  before do
199
342
  stub_auth(oidc_response)
200
- stub_userinfo(oidc_user_info)
201
343
  trigger_callback
202
344
  end
203
345
 
@@ -273,7 +415,7 @@ RSpec::Matchers.define :have_query do |key, value|
273
415
  uri = redirect_uri(actual)
274
416
  query = query(uri)
275
417
  if value.nil?
276
- query[key].length == 1
418
+ query.key?(key)
277
419
  else
278
420
  query[key] == [value]
279
421
  end
@@ -0,0 +1,28 @@
1
+ {
2
+ "keys": [
3
+ {
4
+ "alg": "RS256",
5
+ "kty": "RSA",
6
+ "use": "sig",
7
+ "x5c": [
8
+ "MIIDCzCCAfOgAwIBAgIJAJP6qydiMpsuMA0GCSqGSIb3DQEBBQUAMBwxGjAYBgNVBAMMEXNhbXBsZXMuYXV0aDAuY29tMB4XDTE0MDUyNjIyMDA1MFoXDTI4MDIwMjIyMDA1MFowHDEaMBgGA1UEAwwRc2FtcGxlcy5hdXRoMC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkH4CFGSJ4s3mwCBzaGGwxa9Jxzfb1ia4nUumxbsuaB7PClZZgrNQiOR3MXVNV9W6F1D+wjT6oFHOo7TOkVI22I/ff3XZTE0F35UUHGWRtiQ4LdZxwOPTed2Lax3F2DEyl3Y0CguUKbq2sSghvHYcggM6aj3N53VBsnBh/kdrURDLx1RYqBIL6Fvkhb/V/v/u9UKhZM0CDQRef9FZ7R8q9ie9cnbDOj1dT9d64kiJIYtTraG0gOrs4LI+4KK0EZu5R7Uo053IK7kfNasWhDkl8yxNYkDxwfcIuAcDmLgLnAI4tfW5beJuw+/w75PO/EwzwsnvppXaAz7e3Wf8g1yWFAgMBAAGjUDBOMB0GA1UdDgQWBBTsmytFLNox+NUZdTNlCUL3hHrngTAfBgNVHSMEGDAWgBTsmytFLNox+NUZdTNlCUL3hHrngTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAodbRX/34LnWB70l8dpDF1neDoG29F0XdpE9ICWHeWB1gb/FvJ5UMy9/pnL0DI3mPwkTDDob+16Zc68o6dT6sH3vEUP1iRreJlFADEmJZjrH9P4Y7ttx3G2Uw2RU5uucXIqiyMDBrQo4vx4Lnghl+b/WYbZJgzLfZLgkOEjcznS0Yi5Wdz6MvaL3FehSfweHyrjmxz0e8elHq7VY8OqRA+4PmUBce9BgDCk9fZFjgj8l0m9Vc5pPKSY9LMmTyrYkeDr/KppqdXKOCHmv7AIGb6rMCtbkIL/CM7Bh9Hx78/UKAz87Sl9A1yXVNjKbZwOEW60ORIwJmd8Tv46gJF+/rV"
9
+ ],
10
+ "n": "pB-AhRkieLN5sAgc2hhsMWvScc329YmuJ1LpsW7LmgezwpWWYKzUIjkdzF1TVfVuhdQ_sI0-qBRzqO0zpFSNtiP33912UxNBd-VFBxlkbYkOC3WccDj03ndi2sdxdgxMpd2NAoLlCm6trEoIbx2HIIDOmo9zed1QbJwYf5Ha1EQy8dUWKgSC-hb5IW_1f7_7vVCoWTNAg0EXn_RWe0fKvYnvXJ2wzo9XU_XeuJIiSGLU62htIDq7OCyPuCitBGbuUe1KNOdyCu5HzWrFoQ5JfMsTWJA8cH3CLgHA5i4C5wCOLX1uW3ibsPv8O-TzvxMM8LJ76aV2gM-3t1n_INclhQ",
11
+ "e": "AQAB",
12
+ "kid": "NkJCQzIyQzRBMEU4NjhGNUU4MzU4RkY0M0ZDQzkwOUQ0Q0VGNUMwQg",
13
+ "x5t": "NkJCQzIyQzRBMEU4NjhGNUU4MzU4RkY0M0ZDQzkwOUQ0Q0VGNUMwQg"
14
+ },
15
+ {
16
+ "alg": "RS256",
17
+ "kty": "RSA",
18
+ "use": "sig",
19
+ "x5c": [
20
+ "MIIC8DCCAdigAwIBAgIJ4pL5sRgcIYGZMA0GCSqGSIb3DQEBBQUAMB8xHTAbBgNVBAMTFGxiYWxtYWNlZGEuYXV0aDAuY29tMB4XDTE1MTIxMjE5MDczM1oXDTI5MDgyMDE5MDczM1owHzEdMBsGA1UEAxMUbGJhbG1hY2VkYS5hdXRoMC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPoo5DA/X8suAZujdmD2D88Ggtu8G/kuLUdEuj1W3+wzmFcEqQpE532rg8L0uppWKAbmLWzkuwyioNDhWwCtXnug3BFQf5Lrc6nTxjk4ZQt/HdsYWCGSSZueMUG/3I+2PSql3atD2nedjY6Z9hWU8kzOjF9wzkLMgPf/OYpuz9A+6d+/K8jApRPfsQ1LDVWDG8YRtj+IyHhSvXS+cK03iuD7yVLKkIZuoS8ymMJpnZONHGds/3P9pHY29KqliSYW0eGEX3BIarZG06gRJ+88WUbRi9+rfVAoGLq++S+bc021txK+qYS3nknhY0uv/ODBb4eeycuDjjdyLBCShVvbXFAgMBAAGjLzAtMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFG38TTjyzhRmpK7MXfvBXDcBtYJ3MA0GCSqGSIb3DQEBBQUAA4IBAQCLNW+rA25tjHs6Sa9VPgBfMMLd1PIEgMpQhET9JqpGYUgB+0q1leXw1cwh14x/6PF2oo3jPOMW+wCDA7KAVKYewYSr/Enph+zNFPaq2YQL9dCsVFcBsnEGznwZaqHrqxQDX9S2Ek6E9jNsuBCSpAPcTsfbn2TXz77V+HZ/4tbwRvYEX1S5agiZFyjZzJMiZU1KQzP5PhfzD6RPl5KTK2PYRhVdXwyuFxOdJzCzOC9E/Uw30Zd6+9oHmoNfvJr8BRy67YWjXaQAh2m8e+zv/dEzPimgvaLmI1yz4W+93dJy3NdMuCvObOqA534tviv5PkV57ewXAnWPbxyBHr57HdQ1"
21
+ ],
22
+ "n": "z6KOQwP1_LLgGbo3Zg9g_PBoLbvBv5Li1HRLo9Vt_sM5hXBKkKROd9q4PC9LqaVigG5i1s5LsMoqDQ4VsArV57oNwRUH-S63Op08Y5OGULfx3bGFghkkmbnjFBv9yPtj0qpd2rQ9p3nY2OmfYVlPJMzoxfcM5CzID3_zmKbs_QPunfvyvIwKUT37ENSw1VgxvGEbY_iMh4Ur10vnCtN4rg-8lSypCGbqEvMpjCaZ2TjRxnbP9z_aR2NvSqpYkmFtHhhF9wSGq2RtOoESfvPFlG0Yvfq31QKBi6vvkvm3NNtbcSvqmEt55J4WNLr_zgwW-HnsnLg443ciwQkoVb21xQ",
23
+ "e": "AQAB",
24
+ "kid": "RUVBOTVEMEZBMTA5NDAzNEQzNTZGNzMyMTI4MzU1RkNFQzhCQTM0Mg",
25
+ "x5t": "RUVBOTVEMEZBMTA5NDAzNEQzNTZGNzMyMTI4MzU1RkNFQzhCQTM0Mg"
26
+ }
27
+ ]
28
+ }
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,15 @@
1
- $LOAD_PATH.unshift File.expand_path('..', __FILE__)
2
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
1
+ $LOAD_PATH.unshift File.expand_path(__dir__)
2
+ $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
3
3
 
4
+ require 'multi_json'
4
5
  require 'simplecov'
5
- if ENV['COVERAGE']
6
- SimpleCov.start do
7
- minimum_coverage(89.8)
8
- end
6
+ SimpleCov.start
7
+
8
+ if ENV['CI'] == 'true'
9
+ require 'simplecov-cobertura'
10
+ SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
9
11
  end
12
+
10
13
  require 'rspec'
11
14
  require 'rack/test'
12
15
  require 'webmock/rspec'
@@ -20,6 +23,8 @@ RSpec.configure do |config|
20
23
  config.include WebMock::API
21
24
  config.include Rack::Test::Methods
22
25
  config.extend OmniAuth::Test::StrategyMacros, type: :strategy
26
+ config.filter_run focus: true
27
+ config.run_all_when_everything_filtered = true
23
28
 
24
29
  def app
25
30
  @app || make_application
@@ -37,7 +42,7 @@ RSpec.configure do |config|
37
42
  configure do
38
43
  enable :sessions
39
44
  set :show_exceptions, false
40
- set :session_secret, 'TEST'
45
+ set :session_secret, '9771aff2c634257053c62ba072c54754bd2cc92739b37e81c3eda505da48c2ec'
41
46
  end
42
47
 
43
48
  use OmniAuth::Builder do
metadata CHANGED
@@ -1,79 +1,115 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-auth0
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Auth0
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-25 00:00:00.000000000 Z
11
+ date: 2022-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: omniauth
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: omniauth-oauth2
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '1.4'
33
+ version: '1'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '1.4'
40
+ version: '1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '1.9'
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '1.9'
54
+ version: '0'
41
55
  description: |
42
56
  Auth0 is an authentication broker that supports social identity providers as well as enterprise identity providers such as Active Directory, LDAP, Google Apps, Salesforce.
43
57
 
44
58
  OmniAuth is a library that standardizes multi-provider authentication for web applications. It was created to be powerful, flexible, and do as little as possible.
45
59
 
46
- omniauth-auth0 is the omniauth strategy for Auth0.
60
+ omniauth-auth0 is the OmniAuth strategy for Auth0.
47
61
  email:
48
62
  - info@auth0.com
49
63
  executables: []
50
64
  extensions: []
51
65
  extra_rdoc_files: []
52
66
  files:
67
+ - ".circleci/config.yml"
68
+ - ".devcontainer/devcontainer.json"
53
69
  - ".gemrelease"
70
+ - ".github/CODEOWNERS"
71
+ - ".github/ISSUE_TEMPLATE/config.yml"
72
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
73
+ - ".github/ISSUE_TEMPLATE/report_a_bug.md"
74
+ - ".github/PULL_REQUEST_TEMPLATE.md"
75
+ - ".github/stale.yml"
76
+ - ".github/workflows/semgrep.yml"
54
77
  - ".gitignore"
55
78
  - ".rspec"
56
79
  - ".rubocop.yml"
57
- - ".travis.yml"
80
+ - ".semgrepignore"
81
+ - ".shiprc"
82
+ - ".snyk"
58
83
  - CHANGELOG.md
84
+ - CONTRIBUTING.md
85
+ - EXAMPLES.md
59
86
  - Gemfile
87
+ - Gemfile.lock
60
88
  - Guardfile
61
89
  - LICENSE
62
90
  - README.md
63
91
  - Rakefile
92
+ - codecov.yml
64
93
  - examples/sinatra/app.rb
65
94
  - examples/sinatra/config.ru
66
95
  - lib/omniauth-auth0.rb
67
96
  - lib/omniauth-auth0/version.rb
97
+ - lib/omniauth/auth0/errors.rb
98
+ - lib/omniauth/auth0/jwt_validator.rb
99
+ - lib/omniauth/auth0/telemetry.rb
68
100
  - lib/omniauth/strategies/auth0.rb
69
101
  - omniauth-auth0.gemspec
102
+ - opslevel.yml
103
+ - spec/omniauth/auth0/jwt_validator_spec.rb
104
+ - spec/omniauth/auth0/telemetry_spec.rb
70
105
  - spec/omniauth/strategies/auth0_spec.rb
106
+ - spec/resources/jwks.json
71
107
  - spec/spec_helper.rb
72
108
  homepage: https://github.com/auth0/omniauth-auth0
73
109
  licenses:
74
110
  - MIT
75
111
  metadata: {}
76
- post_install_message:
112
+ post_install_message:
77
113
  rdoc_options: []
78
114
  require_paths:
79
115
  - lib
@@ -88,11 +124,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
124
  - !ruby/object:Gem::Version
89
125
  version: '0'
90
126
  requirements: []
91
- rubyforge_project: omniauth-auth0
92
- rubygems_version: 2.4.5.1
93
- signing_key:
127
+ rubygems_version: 3.2.22
128
+ signing_key:
94
129
  specification_version: 4
95
- summary: Omniauth OAuth2 strategy for the Auth0 platform.
130
+ summary: OmniAuth OAuth2 strategy for the Auth0 platform.
96
131
  test_files:
132
+ - spec/omniauth/auth0/jwt_validator_spec.rb
133
+ - spec/omniauth/auth0/telemetry_spec.rb
97
134
  - spec/omniauth/strategies/auth0_spec.rb
135
+ - spec/resources/jwks.json
98
136
  - spec/spec_helper.rb
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.2.5
4
- branches:
5
- only:
6
- - master