devise_jwt_auth 0.1.2 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/app/controllers/devise_jwt_auth/application_controller.rb +12 -24
  4. data/app/controllers/devise_jwt_auth/concerns/resource_finder.rb +2 -6
  5. data/app/controllers/devise_jwt_auth/concerns/{set_user_by_jwt_token.rb → set_user_by_token.rb} +23 -19
  6. data/app/controllers/devise_jwt_auth/confirmations_controller.rb +10 -19
  7. data/app/controllers/devise_jwt_auth/omniauth_callbacks_controller.rb +32 -33
  8. data/app/controllers/devise_jwt_auth/passwords_controller.rb +34 -36
  9. data/app/controllers/devise_jwt_auth/refresh_token_controller.rb +4 -1
  10. data/app/controllers/devise_jwt_auth/registrations_controller.rb +40 -21
  11. data/app/controllers/devise_jwt_auth/sessions_controller.rb +21 -21
  12. data/app/controllers/devise_jwt_auth/unlocks_controller.rb +5 -4
  13. data/app/models/devise_jwt_auth/concerns/active_record_support.rb +3 -0
  14. data/app/models/devise_jwt_auth/concerns/confirmable_support.rb +7 -4
  15. data/app/models/devise_jwt_auth/concerns/mongoid_support.rb +3 -0
  16. data/app/models/devise_jwt_auth/concerns/tokens_serialization.rb +4 -1
  17. data/app/models/devise_jwt_auth/concerns/user.rb +18 -9
  18. data/app/models/devise_jwt_auth/concerns/user_omniauth_callbacks.rb +11 -3
  19. data/app/validators/devise_jwt_auth_email_validator.rb +4 -3
  20. data/app/views/devise/mailer/reset_password_instructions.html.erb +1 -1
  21. data/lib/devise_jwt_auth/blacklist.rb +2 -0
  22. data/lib/devise_jwt_auth/controllers/url_helpers.rb +1 -2
  23. data/lib/devise_jwt_auth/engine.rb +4 -4
  24. data/lib/devise_jwt_auth/rails/routes.rb +35 -24
  25. data/lib/devise_jwt_auth/token_factory.rb +3 -2
  26. data/lib/devise_jwt_auth/url.rb +2 -4
  27. data/lib/devise_jwt_auth/version.rb +1 -1
  28. data/lib/generators/devise_jwt_auth/install_generator.rb +7 -6
  29. data/lib/generators/devise_jwt_auth/install_generator_helpers.rb +27 -6
  30. data/lib/generators/devise_jwt_auth/install_mongoid_generator.rb +3 -2
  31. data/lib/generators/devise_jwt_auth/templates/devise_jwt_auth.rb +19 -20
  32. data/lib/generators/devise_jwt_auth/templates/devise_jwt_auth_create_users.rb.erb +15 -11
  33. data/lib/generators/devise_jwt_auth/templates/user.rb.erb +2 -2
  34. data/test/controllers/custom/custom_confirmations_controller_test.rb +2 -2
  35. data/test/controllers/custom/custom_passwords_controller_test.rb +6 -6
  36. data/test/controllers/custom/custom_refresh_token_controller_test.rb +2 -3
  37. data/test/controllers/custom/custom_registrations_controller_test.rb +2 -2
  38. data/test/controllers/demo_mang_controller_test.rb +206 -210
  39. data/test/controllers/demo_user_controller_test.rb +358 -374
  40. data/test/controllers/devise_jwt_auth/confirmations_controller_test.rb +5 -5
  41. data/test/controllers/devise_jwt_auth/omniauth_callbacks_controller_test.rb +6 -7
  42. data/test/controllers/devise_jwt_auth/passwords_controller_test.rb +29 -30
  43. data/test/controllers/devise_jwt_auth/refresh_token_controller_test.rb +8 -12
  44. data/test/controllers/devise_jwt_auth/registrations_controller_test.rb +23 -25
  45. data/test/controllers/devise_jwt_auth/sessions_controller_test.rb +32 -34
  46. data/test/controllers/devise_jwt_auth/unlocks_controller_test.rb +2 -2
  47. data/test/controllers/overrides/confirmations_controller_test.rb +1 -1
  48. data/test/controllers/overrides/passwords_controller_test.rb +1 -1
  49. data/test/controllers/overrides/refresh_token_controller_test.rb +1 -2
  50. data/test/controllers/overrides/registrations_controller_test.rb +1 -1
  51. data/test/dummy/app/controllers/application_controller.rb +1 -1
  52. data/test/dummy/app/controllers/custom/refresh_token_controller.rb +2 -1
  53. data/test/dummy/app/controllers/custom/registrations_controller.rb +1 -1
  54. data/test/dummy/app/controllers/overrides/confirmations_controller.rb +3 -16
  55. data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +4 -4
  56. data/test/dummy/app/controllers/overrides/passwords_controller.rb +4 -16
  57. data/test/dummy/app/controllers/overrides/refresh_token_controller.rb +1 -1
  58. data/test/dummy/app/controllers/overrides/registrations_controller.rb +2 -2
  59. data/test/dummy/app/controllers/overrides/sessions_controller.rb +2 -2
  60. data/test/dummy/app/models/concerns/favorite_color.rb +11 -9
  61. data/test/dummy/config.ru +2 -2
  62. data/test/dummy/config/application.rb +1 -0
  63. data/test/dummy/config/boot.rb +1 -1
  64. data/test/dummy/config/environments/test.rb +11 -7
  65. data/test/dummy/config/initializers/figaro.rb +1 -1
  66. data/test/dummy/config/initializers/omniauth.rb +2 -2
  67. data/test/dummy/config/routes.rb +8 -8
  68. data/test/dummy/db/migrate/20141222035835_devise_jwt_auth_create_only_email_users.rb +9 -9
  69. data/test/dummy/db/migrate/20190924101113_devise_jwt_auth_create_confirmable_users.rb +6 -5
  70. data/test/dummy/db/schema.rb +170 -170
  71. data/test/dummy/tmp/generators/app/models/mang.rb +9 -0
  72. data/test/dummy/tmp/generators/app/models/{azpire/v1/human_resource/user.rb → user.rb} +3 -3
  73. data/test/dummy/tmp/generators/config/initializers/devise_jwt_auth.rb +19 -20
  74. data/test/dummy/tmp/generators/config/routes.rb +9 -0
  75. data/test/dummy/tmp/generators/db/migrate/{20200209222205_devise_jwt_auth_create_azpire_v1_human_resource_users.rb → 20201208044024_devise_jwt_auth_create_mangs.rb} +20 -17
  76. data/test/dummy/tmp/generators/db/migrate/20201208044024_devise_jwt_auth_create_users.rb +54 -0
  77. data/test/factories/users.rb +5 -3
  78. data/test/lib/devise_jwt_auth/token_factory_test.rb +6 -6
  79. data/test/lib/generators/devise_jwt_auth/install_generator_test.rb +3 -20
  80. data/test/lib/generators/devise_jwt_auth/install_generator_with_namespace_test.rb +4 -21
  81. data/test/models/concerns/tokens_serialization_test.rb +68 -68
  82. data/test/models/user_test.rb +35 -37
  83. data/test/support/controllers/routes.rb +7 -5
  84. data/test/test_helper.rb +1 -1
  85. metadata +56 -66
  86. data/test/dummy/tmp/generators/app/controllers/application_controller.rb +0 -6
@@ -58,43 +58,41 @@ class UserTest < ActiveSupport::TestCase
58
58
  end
59
59
  end
60
60
 
61
- =begin
62
- describe 'token expiry' do
63
- before do
64
- @resource = create(:user, :confirmed)
65
- # TODO: expire this token?
66
- @auth_headers = @resource.create_named_token_pair
67
-
68
- # @token = @auth_headers['access-token']
69
- # @client_id = @auth_headers['client']
70
- end
71
-
72
- test 'should properly indicate whether token is current' do
73
- assert @resource.token_is_current?(@token, @client_id)
74
- # we want to update the expiry without forcing a cleanup (see below)
75
- @resource.tokens[@client_id]['expiry'] = Time.zone.now.to_i - 10.seconds
76
- refute @resource.token_is_current?(@token, @client_id)
77
- end
78
- end
79
-
80
- describe 'expired tokens are destroyed on save' do
81
- before do
82
- @resource = create(:user, :confirmed)
83
-
84
- @old_auth_headers = @resource.create_new_auth_token
85
- @new_auth_headers = @resource.create_new_auth_token
86
- expire_token(@resource, @old_auth_headers['client'])
87
- end
88
-
89
- test 'expired token was removed' do
90
- refute @resource.tokens[@old_auth_headers[:client]]
91
- end
92
-
93
- test 'current token was not removed' do
94
- assert @resource.tokens[@new_auth_headers['client']]
95
- end
96
- end
97
- =end
61
+ # describe 'token expiry' do
62
+ # before do
63
+ # @resource = create(:user, :confirmed)
64
+ # # TODO: expire this token?
65
+ # @auth_headers = @resource.create_named_token_pair
66
+ #
67
+ # # @token = @auth_headers['access-token']
68
+ # # @client_id = @auth_headers['client']
69
+ # end
70
+ #
71
+ # test 'should properly indicate whether token is current' do
72
+ # assert @resource.token_is_current?(@token, @client_id)
73
+ # # we want to update the expiry without forcing a cleanup (see below)
74
+ # @resource.tokens[@client_id]['expiry'] = Time.zone.now.to_i - 10.seconds
75
+ # refute @resource.token_is_current?(@token, @client_id)
76
+ # end
77
+ # end
78
+ #
79
+ # describe 'expired tokens are destroyed on save' do
80
+ # before do
81
+ # @resource = create(:user, :confirmed)
82
+ #
83
+ # @old_auth_headers = @resource.create_new_auth_token
84
+ # @new_auth_headers = @resource.create_new_auth_token
85
+ # expire_token(@resource, @old_auth_headers['client'])
86
+ # end
87
+ #
88
+ # test 'expired token was removed' do
89
+ # refute @resource.tokens[@old_auth_headers[:client]]
90
+ # end
91
+ #
92
+ # test 'current token was not removed' do
93
+ # assert @resource.tokens[@new_auth_headers['client']]
94
+ # end
95
+ # end
98
96
 
99
97
  describe 'nil tokens are handled properly' do
100
98
  before do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Module
2
4
  include Minitest::Spec::DSL
3
5
  end
@@ -31,12 +33,12 @@ module OverridesControllersRoutes
31
33
  before do
32
34
  Rails.application.routes.draw do
33
35
  mount_devise_jwt_auth_for 'User', at: 'evil_user_auth', controllers: {
34
- confirmations: 'overrides/confirmations',
35
- passwords: 'overrides/passwords',
36
+ confirmations: 'overrides/confirmations',
37
+ passwords: 'overrides/passwords',
36
38
  omniauth_callbacks: 'overrides/omniauth_callbacks',
37
- registrations: 'overrides/registrations',
38
- sessions: 'overrides/sessions',
39
- refresh_token: 'overrides/refresh_token'
39
+ registrations: 'overrides/registrations',
40
+ sessions: 'overrides/sessions',
41
+ refresh_token: 'overrides/refresh_token'
40
42
  }
41
43
  end
42
44
  end
@@ -20,7 +20,7 @@ require 'database_cleaner'
20
20
  FactoryBot.definition_file_paths = [File.expand_path('factories', __dir__)]
21
21
  FactoryBot.find_definitions
22
22
 
23
- Dir[File.join(__dir__, 'support/**', '*.rb')].each { |file| require file }
23
+ Dir[File.join(__dir__, 'support/**', '*.rb')].sort.each { |file| require file }
24
24
 
25
25
  # I hate the default reporter. Use ProgressReporter instead.
26
26
  Minitest::Reporters.use! Minitest::Reporters::ProgressReporter.new
metadata CHANGED
@@ -1,83 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_jwt_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron A
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-09 00:00:00.000000000 Z
11
+ date: 2020-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: devise
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - ">"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.0
19
+ version: 3.5.2
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.1'
22
+ version: '5'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">="
27
+ - - ">"
28
28
  - !ruby/object:Gem::Version
29
- version: 4.2.0
29
+ version: 3.5.2
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.1'
33
- - !ruby/object:Gem::Dependency
34
- name: sprockets
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - '='
38
- - !ruby/object:Gem::Version
39
- version: 3.7.2
40
- type: :runtime
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - '='
45
- - !ruby/object:Gem::Version
46
- version: 3.7.2
32
+ version: '5'
47
33
  - !ruby/object:Gem::Dependency
48
- name: devise
34
+ name: rails
49
35
  requirement: !ruby/object:Gem::Requirement
50
36
  requirements:
51
- - - ">"
37
+ - - ">="
52
38
  - !ruby/object:Gem::Version
53
- version: 3.5.2
39
+ version: 4.2.0
54
40
  - - "<"
55
41
  - !ruby/object:Gem::Version
56
- version: '5'
42
+ version: '6.1'
57
43
  type: :runtime
58
44
  prerelease: false
59
45
  version_requirements: !ruby/object:Gem::Requirement
60
46
  requirements:
61
- - - ">"
47
+ - - ">="
62
48
  - !ruby/object:Gem::Version
63
- version: 3.5.2
49
+ version: 4.2.0
64
50
  - - "<"
65
51
  - !ruby/object:Gem::Version
66
- version: '5'
52
+ version: '6.1'
67
53
  - !ruby/object:Gem::Dependency
68
- name: bcrypt
54
+ name: sprockets
69
55
  requirement: !ruby/object:Gem::Requirement
70
56
  requirements:
71
- - - "~>"
57
+ - - '='
72
58
  - !ruby/object:Gem::Version
73
- version: '3.0'
59
+ version: 3.7.2
74
60
  type: :runtime
75
61
  prerelease: false
76
62
  version_requirements: !ruby/object:Gem::Requirement
77
63
  requirements:
78
- - - "~>"
64
+ - - '='
79
65
  - !ruby/object:Gem::Version
80
- version: '3.0'
66
+ version: 3.7.2
81
67
  - !ruby/object:Gem::Dependency
82
68
  name: jwt
83
69
  requirement: !ruby/object:Gem::Requirement
@@ -107,33 +93,39 @@ dependencies:
107
93
  - !ruby/object:Gem::Version
108
94
  version: '0'
109
95
  - !ruby/object:Gem::Dependency
110
- name: sqlite3
96
+ name: mongoid
111
97
  requirement: !ruby/object:Gem::Requirement
112
98
  requirements:
113
- - - "~>"
99
+ - - ">="
114
100
  - !ruby/object:Gem::Version
115
- version: '1.4'
101
+ version: '4'
102
+ - - "<"
103
+ - !ruby/object:Gem::Version
104
+ version: '8'
116
105
  type: :development
117
106
  prerelease: false
118
107
  version_requirements: !ruby/object:Gem::Requirement
119
108
  requirements:
120
- - - "~>"
109
+ - - ">="
121
110
  - !ruby/object:Gem::Version
122
- version: '1.4'
111
+ version: '4'
112
+ - - "<"
113
+ - !ruby/object:Gem::Version
114
+ version: '8'
123
115
  - !ruby/object:Gem::Dependency
124
- name: pg
116
+ name: mongoid-locker
125
117
  requirement: !ruby/object:Gem::Requirement
126
118
  requirements:
127
- - - ">="
119
+ - - "~>"
128
120
  - !ruby/object:Gem::Version
129
- version: '0'
121
+ version: '1.0'
130
122
  type: :development
131
123
  prerelease: false
132
124
  version_requirements: !ruby/object:Gem::Requirement
133
125
  requirements:
134
- - - ">="
126
+ - - "~>"
135
127
  - !ruby/object:Gem::Version
136
- version: '0'
128
+ version: '1.0'
137
129
  - !ruby/object:Gem::Dependency
138
130
  name: mysql2
139
131
  requirement: !ruby/object:Gem::Requirement
@@ -149,39 +141,33 @@ dependencies:
149
141
  - !ruby/object:Gem::Version
150
142
  version: '0'
151
143
  - !ruby/object:Gem::Dependency
152
- name: mongoid
144
+ name: pg
153
145
  requirement: !ruby/object:Gem::Requirement
154
146
  requirements:
155
147
  - - ">="
156
148
  - !ruby/object:Gem::Version
157
- version: '4'
158
- - - "<"
159
- - !ruby/object:Gem::Version
160
- version: '8'
149
+ version: '0'
161
150
  type: :development
162
151
  prerelease: false
163
152
  version_requirements: !ruby/object:Gem::Requirement
164
153
  requirements:
165
154
  - - ">="
166
155
  - !ruby/object:Gem::Version
167
- version: '4'
168
- - - "<"
169
- - !ruby/object:Gem::Version
170
- version: '8'
156
+ version: '0'
171
157
  - !ruby/object:Gem::Dependency
172
- name: mongoid-locker
158
+ name: sqlite3
173
159
  requirement: !ruby/object:Gem::Requirement
174
160
  requirements:
175
161
  - - "~>"
176
162
  - !ruby/object:Gem::Version
177
- version: '1.0'
163
+ version: '1.4'
178
164
  type: :development
179
165
  prerelease: false
180
166
  version_requirements: !ruby/object:Gem::Requirement
181
167
  requirements:
182
168
  - - "~>"
183
169
  - !ruby/object:Gem::Version
184
- version: '1.0'
170
+ version: '1.4'
185
171
  description: Supports silent refresh with client side single page apps in mind.
186
172
  email:
187
173
  - _aaron@tutanota.com
@@ -194,7 +180,7 @@ files:
194
180
  - Rakefile
195
181
  - app/controllers/devise_jwt_auth/application_controller.rb
196
182
  - app/controllers/devise_jwt_auth/concerns/resource_finder.rb
197
- - app/controllers/devise_jwt_auth/concerns/set_user_by_jwt_token.rb
183
+ - app/controllers/devise_jwt_auth/concerns/set_user_by_token.rb
198
184
  - app/controllers/devise_jwt_auth/confirmations_controller.rb
199
185
  - app/controllers/devise_jwt_auth/omniauth_callbacks_controller.rb
200
186
  - app/controllers/devise_jwt_auth/passwords_controller.rb
@@ -348,10 +334,12 @@ files:
348
334
  - test/dummy/db/migrate/20190924101113_devise_jwt_auth_create_confirmable_users.rb
349
335
  - test/dummy/db/schema.rb
350
336
  - test/dummy/lib/migration_database_helper.rb
351
- - test/dummy/tmp/generators/app/controllers/application_controller.rb
352
- - test/dummy/tmp/generators/app/models/azpire/v1/human_resource/user.rb
337
+ - test/dummy/tmp/generators/app/models/mang.rb
338
+ - test/dummy/tmp/generators/app/models/user.rb
353
339
  - test/dummy/tmp/generators/config/initializers/devise_jwt_auth.rb
354
- - test/dummy/tmp/generators/db/migrate/20200209222205_devise_jwt_auth_create_azpire_v1_human_resource_users.rb
340
+ - test/dummy/tmp/generators/config/routes.rb
341
+ - test/dummy/tmp/generators/db/migrate/20201208044024_devise_jwt_auth_create_mangs.rb
342
+ - test/dummy/tmp/generators/db/migrate/20201208044024_devise_jwt_auth_create_users.rb
355
343
  - test/factories/users.rb
356
344
  - test/lib/devise_jwt_auth/blacklist_test.rb
357
345
  - test/lib/devise_jwt_auth/token_factory_test.rb
@@ -378,14 +366,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
378
366
  requirements:
379
367
  - - ">="
380
368
  - !ruby/object:Gem::Version
381
- version: 2.2.0
369
+ version: 2.4.0
382
370
  required_rubygems_version: !ruby/object:Gem::Requirement
383
371
  requirements:
384
372
  - - ">="
385
373
  - !ruby/object:Gem::Version
386
374
  version: '0'
387
375
  requirements: []
388
- rubygems_version: 3.0.6
376
+ rubygems_version: 3.0.8
389
377
  signing_key:
390
378
  specification_version: 4
391
379
  summary: JWT based authentication port of Devise Token Auth.
@@ -406,10 +394,12 @@ test_files:
406
394
  - test/test_helper.rb
407
395
  - test/dummy/lib/migration_database_helper.rb
408
396
  - test/dummy/config.ru
409
- - test/dummy/tmp/generators/db/migrate/20200209222205_devise_jwt_auth_create_azpire_v1_human_resource_users.rb
397
+ - test/dummy/tmp/generators/db/migrate/20201208044024_devise_jwt_auth_create_mangs.rb
398
+ - test/dummy/tmp/generators/db/migrate/20201208044024_devise_jwt_auth_create_users.rb
399
+ - test/dummy/tmp/generators/config/routes.rb
410
400
  - test/dummy/tmp/generators/config/initializers/devise_jwt_auth.rb
411
- - test/dummy/tmp/generators/app/models/azpire/v1/human_resource/user.rb
412
- - test/dummy/tmp/generators/app/controllers/application_controller.rb
401
+ - test/dummy/tmp/generators/app/models/mang.rb
402
+ - test/dummy/tmp/generators/app/models/user.rb
413
403
  - test/dummy/db/migrate/20150708104536_devise_jwt_auth_create_unconfirmable_users.rb
414
404
  - test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb
415
405
  - test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb
@@ -1,6 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- include DeviseJwtAuth::Concerns::SetUserByToken
3
- def whatever
4
- 'whatever'
5
- end
6
- end