devise_jwt_auth 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/controllers/devise_jwt_auth/application_controller.rb +11 -22
  4. data/app/controllers/devise_jwt_auth/concerns/resource_finder.rb +3 -7
  5. data/app/controllers/devise_jwt_auth/concerns/set_user_by_token.rb +22 -18
  6. data/app/controllers/devise_jwt_auth/confirmations_controller.rb +10 -19
  7. data/app/controllers/devise_jwt_auth/omniauth_callbacks_controller.rb +38 -46
  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 -14
  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 -11
  18. data/app/models/devise_jwt_auth/concerns/user_omniauth_callbacks.rb +11 -3
  19. data/app/validators/devise_jwt_auth_email_validator.rb +12 -2
  20. data/app/views/devise/mailer/reset_password_instructions.html.erb +1 -1
  21. data/lib/devise_jwt_auth/blacklist.rb +3 -1
  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/USAGE +1 -1
  29. data/lib/generators/devise_jwt_auth/install_generator.rb +7 -6
  30. data/lib/generators/devise_jwt_auth/install_generator_helpers.rb +27 -6
  31. data/lib/generators/devise_jwt_auth/install_mongoid_generator.rb +3 -2
  32. data/lib/generators/devise_jwt_auth/templates/devise_jwt_auth.rb +6 -7
  33. data/lib/generators/devise_jwt_auth/templates/devise_jwt_auth_create_users.rb.erb +15 -11
  34. data/lib/generators/devise_jwt_auth/templates/user.rb.erb +2 -2
  35. data/test/controllers/custom/custom_confirmations_controller_test.rb +2 -2
  36. data/test/controllers/custom/custom_omniauth_callbacks_controller_test.rb +1 -1
  37. data/test/controllers/custom/custom_passwords_controller_test.rb +8 -8
  38. data/test/controllers/custom/custom_refresh_token_controller_test.rb +2 -3
  39. data/test/controllers/custom/custom_registrations_controller_test.rb +2 -2
  40. data/test/controllers/demo_group_controller_test.rb +0 -24
  41. data/test/controllers/demo_mang_controller_test.rb +4 -224
  42. data/test/controllers/demo_user_controller_test.rb +6 -432
  43. data/test/controllers/devise_jwt_auth/confirmations_controller_test.rb +5 -5
  44. data/test/controllers/devise_jwt_auth/omniauth_callbacks_controller_test.rb +9 -10
  45. data/test/controllers/devise_jwt_auth/passwords_controller_test.rb +34 -35
  46. data/test/controllers/devise_jwt_auth/refresh_token_controller_test.rb +8 -12
  47. data/test/controllers/devise_jwt_auth/registrations_controller_test.rb +12 -26
  48. data/test/controllers/devise_jwt_auth/sessions_controller_test.rb +32 -34
  49. data/test/controllers/devise_jwt_auth/unlocks_controller_test.rb +2 -2
  50. data/test/controllers/overrides/confirmations_controller_test.rb +1 -1
  51. data/test/controllers/overrides/passwords_controller_test.rb +1 -6
  52. data/test/controllers/overrides/refresh_token_controller_test.rb +1 -2
  53. data/test/controllers/overrides/registrations_controller_test.rb +1 -1
  54. data/test/dummy/app/controllers/custom/refresh_token_controller.rb +2 -1
  55. data/test/dummy/app/controllers/custom/registrations_controller.rb +1 -1
  56. data/test/dummy/app/controllers/overrides/confirmations_controller.rb +3 -16
  57. data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +4 -4
  58. data/test/dummy/app/controllers/overrides/passwords_controller.rb +4 -16
  59. data/test/dummy/app/controllers/overrides/refresh_token_controller.rb +1 -1
  60. data/test/dummy/app/controllers/overrides/registrations_controller.rb +2 -2
  61. data/test/dummy/app/controllers/overrides/sessions_controller.rb +2 -2
  62. data/test/dummy/app/models/concerns/favorite_color.rb +11 -9
  63. data/test/dummy/config/application.rb +1 -0
  64. data/test/dummy/config/boot.rb +1 -1
  65. data/test/dummy/config/environments/development.rb +2 -2
  66. data/test/dummy/config/environments/test.rb +11 -7
  67. data/test/dummy/config/initializers/devise_jwt_auth.rb +1 -0
  68. data/test/dummy/config/initializers/figaro.rb +1 -1
  69. data/test/dummy/config/initializers/omniauth.rb +2 -2
  70. data/test/dummy/config/routes.rb +10 -8
  71. data/test/dummy/config.ru +2 -2
  72. data/test/dummy/db/migrate/20141222035835_devise_jwt_auth_create_only_email_users.rb +9 -9
  73. data/test/dummy/db/migrate/20190924101113_devise_jwt_auth_create_confirmable_users.rb +6 -5
  74. data/test/dummy/db/schema.rb +170 -170
  75. data/test/dummy/tmp/generators/app/models/user.rb +8 -0
  76. data/test/dummy/tmp/generators/config/initializers/devise_jwt_auth.rb +6 -7
  77. data/test/dummy/tmp/generators/db/migrate/{20200210193225_devise_jwt_auth_create_azpire_v1_human_resource_users.rb → 20220123023137_devise_jwt_auth_create_users.rb} +20 -17
  78. data/test/factories/users.rb +5 -3
  79. data/test/lib/devise_jwt_auth/blacklist_test.rb +2 -2
  80. data/test/lib/devise_jwt_auth/token_factory_test.rb +7 -7
  81. data/test/lib/generators/devise_jwt_auth/install_generator_test.rb +3 -20
  82. data/test/lib/generators/devise_jwt_auth/install_generator_with_namespace_test.rb +4 -21
  83. data/test/models/concerns/tokens_serialization_test.rb +68 -68
  84. data/test/models/user_test.rb +0 -38
  85. data/test/support/controllers/routes.rb +7 -5
  86. data/test/test_helper.rb +1 -1
  87. metadata +45 -71
  88. data/test/dummy/tmp/generators/app/models/azpire/v1/human_resource/user.rb +0 -9
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Overrides
4
4
  class RefreshTokenController < DeviseJwtAuth::RefreshTokenController
5
- OVERRIDE_PROOF = '(^^,)'.freeze
5
+ OVERRIDE_PROOF = '(^^,)'
6
6
  def show
7
7
  # @resource will have been set by set_user_by_token concern
8
8
  if @resource
@@ -2,14 +2,14 @@
2
2
 
3
3
  module Overrides
4
4
  class RegistrationsController < DeviseJwtAuth::RegistrationsController
5
- OVERRIDE_PROOF = '(^^,)'.freeze
5
+ OVERRIDE_PROOF = '(^^,)'
6
6
 
7
7
  def update
8
8
  if @resource
9
9
  if @resource.update(account_update_params)
10
10
  render json: {
11
11
  status: 'success',
12
- data: @resource.as_json,
12
+ data: @resource.as_json,
13
13
  override_proof: OVERRIDE_PROOF
14
14
  }
15
15
  else
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Overrides
4
4
  class SessionsController < DeviseJwtAuth::SessionsController
5
- OVERRIDE_PROOF = '(^^,)'.freeze
5
+ OVERRIDE_PROOF = '(^^,)'
6
6
 
7
7
  def create
8
8
  @resource = resource_class.dta_find_by(email: resource_params[:email])
@@ -16,7 +16,7 @@ module Overrides
16
16
  override_proof: OVERRIDE_PROOF
17
17
  }.merge(auth_header)
18
18
 
19
- elsif @resource && (not @resource.confirmed?)
19
+ elsif @resource && !@resource.confirmed?
20
20
  render json: {
21
21
  success: false,
22
22
  errors: [
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FavoriteColor
2
4
  extend ActiveSupport::Concern
3
5
 
@@ -5,15 +7,15 @@ module FavoriteColor
5
7
  validates :operating_thetan, numericality: true, allow_nil: true
6
8
  validate :ensure_correct_favorite_color
7
9
  end
8
-
10
+
9
11
  def ensure_correct_favorite_color
10
- if favorite_color && (favorite_color != '')
11
- unless ApplicationHelper::COLOR_NAMES.any?{ |s| s.casecmp(favorite_color)==0 }
12
- matches = ApplicationHelper::COLOR_SEARCH.search(favorite_color)
13
- closest_match = matches.last[:string]
14
- second_closest_match = matches[-2][:string]
15
- errors.add(:favorite_color, "We've never heard of the color \"#{favorite_color}\". Did you mean \"#{closest_match}\"? Or perhaps \"#{second_closest_match}\"?")
16
- end
17
- end
12
+ return unless favorite_color && (favorite_color != '')
13
+
14
+ return if ApplicationHelper::COLOR_NAMES.any? { |s| s.casecmp(favorite_color).zero? }
15
+
16
+ matches = ApplicationHelper::COLOR_SEARCH.search(favorite_color)
17
+ closest_match = matches.last[:string]
18
+ second_closest_match = matches[-2][:string]
19
+ errors.add(:favorite_color, "We've never heard of the color \"#{favorite_color}\". Did you mean \"#{closest_match}\"? Or perhaps \"#{second_closest_match}\"?")
18
20
  end
19
21
  end
@@ -19,6 +19,7 @@ begin
19
19
  require 'mongoid-locker'
20
20
  end
21
21
  rescue LoadError
22
+ raise StandardError, 'Unsupported ORM'
22
23
  end
23
24
 
24
25
  require 'devise_jwt_auth'
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  unless defined?(DEVISE_JWT_AUTH_ORM)
4
- DEVISE_JWT_AUTH_ORM = (ENV["DEVISE_JWT_AUTH_ORM"] || :active_record).to_sym
4
+ DEVISE_JWT_AUTH_ORM = (ENV['DEVISE_JWT_AUTH_ORM'] || :active_record).to_sym
5
5
  end
6
6
 
7
7
  # Set up gems listed in the Gemfile.
@@ -19,7 +19,7 @@ Rails.application.configure do
19
19
  config.action_mailer.raise_delivery_errors = true
20
20
 
21
21
  # use mailcatcher for development
22
- config.action_mailer.default_url_options = { host: 'devise-token-auth.dev' }
22
+ config.action_mailer.default_url_options = { host: 'devise-jwt-auth.dev' }
23
23
  config.action_mailer.delivery_method = :smtp
24
24
  config.action_mailer.smtp_settings = { address: 'localhost', port: 1025 }
25
25
 
@@ -42,5 +42,5 @@ Rails.application.configure do
42
42
  # Raises error for missing translations
43
43
  # config.action_view.raise_on_missing_translations = true
44
44
 
45
- OmniAuth.config.full_host = 'http://devise-token-auth.dev'
45
+ OmniAuth.config.full_host = 'http://devise-jwt-auth.dev'
46
46
  end
@@ -15,13 +15,17 @@ Rails.application.configure do
15
15
  config.eager_load = false
16
16
 
17
17
  # Configure static asset server for tests with Cache-Control for performance.
18
- Rails::VERSION::MAJOR == 5 ?
19
- (config.public_file_server.enabled = true) :
20
- (config.serve_static_files = true)
21
-
22
- Rails::VERSION::MAJOR == 5 ?
23
- (config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }) :
24
- (config.static_cache_control = 'public, max-age=3600')
18
+ if Rails::VERSION::MAJOR == 5
19
+ (config.public_file_server.enabled = true)
20
+ else
21
+ (config.serve_static_files = true)
22
+ end
23
+
24
+ if Rails::VERSION::MAJOR == 5
25
+ (config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' })
26
+ else
27
+ (config.static_cache_control = 'public, max-age=3600')
28
+ end
25
29
 
26
30
  # Show full error reports and disable caching.
27
31
  config.consider_all_requests_local = true
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  DeviseJwtAuth.setup do |config|
4
+ # TODO: Remove old config settings from DTA.
4
5
  # By default the authorization headers will change after each request. The
5
6
  # client is responsible for keeping track of the changing tokens. Change
6
7
  # this to false to prevent the Authorization header from changing after
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- #Figaro.require("GITHUB_KEY", "GITHUB_SECRET", "FACEBOOK_KEY", "FACEBOOK_SECRET", "GOOGLE_KEY", "GOOGLE_SECRET", "APPLE_CLIENT_ID", "APPLE_TEAM_ID", "APPLE_KEY", "APPLE_PEM")
3
+ # Figaro.require("GITHUB_KEY", "GITHUB_SECRET", "FACEBOOK_KEY", "FACEBOOK_SECRET", "GOOGLE_KEY", "GOOGLE_SECRET", "APPLE_CLIENT_ID", "APPLE_TEAM_ID", "APPLE_KEY", "APPLE_PEM")
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Rails.application.config.middleware.use OmniAuth::Builder do |b|
4
- provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET'], scope: 'email,profile'
3
+ Rails.application.config.middleware.use OmniAuth::Builder do |_b|
4
+ provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET'], scope: 'email,profile'
5
5
  provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET']
6
6
  provider :google_oauth2, ENV['GOOGLE_KEY'], ENV['GOOGLE_SECRET']
7
7
  provider :apple, ENV['APPLE_CLIENT_ID'], '', { scope: 'email name', team_id: ENV['APPLE_TEAM_ID'], key_id: ENV['APPLE_KEY'], pem: ENV['APPLE_PEM'] }
@@ -32,14 +32,14 @@ Rails.application.routes.draw do
32
32
  # test namespacing with not created devise mapping
33
33
  namespace :api_v2, defaults: { format: :json } do
34
34
  mount_devise_jwt_auth_for 'ScopedUser',
35
- at: 'auth',
36
- controllers: {
37
- omniauth_callbacks: 'api_v2/omniauth_callbacks',
38
- sessions: 'api_v2/sessions',
39
- registrations: 'api_v2/registrations',
40
- confirmations: 'api_v2/confirmations',
41
- passwords: 'api_v2/passwords'
42
- }
35
+ at: 'auth',
36
+ controllers: {
37
+ omniauth_callbacks: 'api_v2/omniauth_callbacks',
38
+ sessions: 'api_v2/sessions',
39
+ registrations: 'api_v2/registrations',
40
+ confirmations: 'api_v2/confirmations',
41
+ passwords: 'api_v2/passwords'
42
+ }
43
43
  end
44
44
 
45
45
  # this route will authorize visitors using the User class
@@ -54,4 +54,6 @@ Rails.application.routes.draw do
54
54
 
55
55
  # we need a route for omniauth_callback_controller to redirect to in sameWindow case
56
56
  get 'auth_origin', to: 'auth_origin#redirected'
57
+
58
+ # get 'omniauth/facebook', to: 'omni#facebook'
57
59
  end
data/test/dummy/config.ru CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # This file is used by Rack-based servers to start the application.
4
4
 
5
- require ::File.expand_path('../config/environment', __FILE__)
5
+ require ::File.expand_path('config/environment', __dir__)
6
6
  run Rails.application
7
7
 
8
8
  # allow cross origin requests
@@ -12,7 +12,7 @@ use Rack::Cors do
12
12
  origins '*'
13
13
  resource '*',
14
14
  headers: :any,
15
- expose: ['access-token', 'expiry', 'token-type', 'uid', 'client'],
15
+ expose: %w[access-token],
16
16
  methods: %i[get post options delete put]
17
17
  end
18
18
  end
@@ -13,17 +13,17 @@ class DeviseJwtAuthCreateOnlyEmailUsers < ActiveRecord::Migration[4.2]
13
13
  t.string :encrypted_password, null: false, default: ''
14
14
 
15
15
  ## Recoverable
16
- #t.string :reset_password_token
17
- #t.datetime :reset_password_sent_at
16
+ # t.string :reset_password_token
17
+ # t.datetime :reset_password_sent_at
18
18
 
19
19
  ## Rememberable
20
- #t.datetime :remember_created_at
20
+ # t.datetime :remember_created_at
21
21
 
22
22
  ## Confirmable
23
- #t.string :confirmation_token
24
- #t.datetime :confirmed_at
25
- #t.datetime :confirmation_sent_at
26
- #t.string :unconfirmed_email # Only if using reconfirmable
23
+ # t.string :confirmation_token
24
+ # t.datetime :confirmed_at
25
+ # t.datetime :confirmation_sent_at
26
+ # t.string :unconfirmed_email # Only if using reconfirmable
27
27
 
28
28
  ## Lockable
29
29
  # t.integer :failed_attempts, :default => 0, :null => false # Only if lock strategy is :failed_attempts
@@ -47,8 +47,8 @@ class DeviseJwtAuthCreateOnlyEmailUsers < ActiveRecord::Migration[4.2]
47
47
  end
48
48
 
49
49
  add_index :only_email_users, :email
50
- add_index :only_email_users, [:uid, :provider], unique: true
51
- #add_index :only_email_users, :reset_password_token, :unique => true
50
+ add_index :only_email_users, [:uid, :provider], unique: true
51
+ # add_index :only_email_users, :reset_password_token, :unique => true
52
52
  # add_index :only_email_users, :confirmation_token, :unique => true
53
53
  # add_index :only_email_users, :unlock_token, :unique => true
54
54
  end
@@ -1,18 +1,19 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class DeviseJwtAuthCreateConfirmableUsers < ActiveRecord::Migration[5.2]
2
4
  def change
3
-
4
5
  create_table(:confirmable_users) do |t|
5
6
  ## Required
6
- t.string :provider, :null => false, :default => "email"
7
- t.string :uid, :null => false, :default => ""
7
+ t.string :provider, null: false, default: 'email'
8
+ t.string :uid, null: false, default: ''
8
9
 
9
10
  ## Database authenticatable
10
- t.string :encrypted_password, :null => false, :default => ""
11
+ t.string :encrypted_password, null: false, default: ''
11
12
 
12
13
  ## Recoverable
13
14
  t.string :reset_password_token
14
15
  t.datetime :reset_password_sent_at
15
- t.boolean :allow_password_change, :default => false
16
+ t.boolean :allow_password_change, default: false
16
17
 
17
18
  ## Rememberable
18
19
  t.datetime :remember_created_at