rails_jwt_auth 0.18.1 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +161 -242
  3. data/app/controllers/concerns/rails_jwt_auth/authenticable_helper.rb +44 -0
  4. data/app/controllers/concerns/rails_jwt_auth/params_helper.rb +1 -3
  5. data/app/controllers/concerns/rails_jwt_auth/render_helper.rb +4 -0
  6. data/app/controllers/rails_jwt_auth/confirmations_controller.rb +6 -9
  7. data/app/controllers/rails_jwt_auth/invitations_controller.rb +8 -9
  8. data/app/controllers/rails_jwt_auth/passwords_controller.rb +8 -16
  9. data/app/controllers/rails_jwt_auth/registrations_controller.rb +1 -1
  10. data/app/controllers/rails_jwt_auth/sessions_controller.rb +14 -15
  11. data/app/mailers/rails_jwt_auth/mailer.rb +30 -39
  12. data/app/models/concerns/rails_jwt_auth/authenticatable.rb +44 -32
  13. data/app/models/concerns/rails_jwt_auth/confirmable.rb +59 -47
  14. data/app/models/concerns/rails_jwt_auth/invitable.rb +36 -34
  15. data/app/models/concerns/rails_jwt_auth/recoverable.rb +28 -27
  16. data/app/models/concerns/rails_jwt_auth/trackable.rb +1 -1
  17. data/app/views/rails_jwt_auth/mailer/confirmation_instructions.html.erb +2 -2
  18. data/app/views/rails_jwt_auth/mailer/email_changed.html.erb +3 -0
  19. data/app/views/rails_jwt_auth/mailer/reset_password_instructions.html.erb +2 -2
  20. data/app/views/rails_jwt_auth/mailer/send_invitation.html.erb +2 -2
  21. data/app/views/rails_jwt_auth/mailer/set_password_instructions.html.erb +2 -2
  22. data/config/locales/en.yml +2 -17
  23. data/lib/generators/rails_jwt_auth/install_generator.rb +6 -7
  24. data/lib/generators/rails_jwt_auth/migrate_generator.rb +17 -0
  25. data/lib/generators/templates/initializer.rb +17 -21
  26. data/lib/generators/templates/migration.rb +29 -0
  27. data/lib/rails_jwt_auth/engine.rb +0 -21
  28. data/lib/rails_jwt_auth/jwt_manager.rb +33 -0
  29. data/lib/rails_jwt_auth/spec_helpers.rb +19 -0
  30. data/lib/rails_jwt_auth/version.rb +1 -1
  31. data/lib/rails_jwt_auth.rb +67 -30
  32. metadata +25 -35
  33. data/app/controllers/concerns/rails_jwt_auth/warden_helper.rb +0 -27
  34. data/app/validators/email_validator.rb +0 -7
  35. data/lib/rails_jwt_auth/jwt/manager.rb +0 -37
  36. data/lib/rails_jwt_auth/jwt/request.rb +0 -34
  37. data/lib/rails_jwt_auth/spec/helpers.rb +0 -17
  38. data/lib/rails_jwt_auth/spec/not_authorized.rb +0 -6
  39. data/lib/rails_jwt_auth/strategies/jwt.rb +0 -17
  40. data/lib/tasks/rails_token_jwt_tasks.rake +0 -4
@@ -1,13 +1,34 @@
1
1
  module RailsJwtAuth
2
2
  module Recoverable
3
+ def self.included(base)
4
+ base.class_eval do
5
+ if defined?(Mongoid) && base.ancestors.include?(Mongoid::Document)
6
+ # include GlobalID::Identification to use deliver_later method
7
+ # http://edgeguides.rubyonrails.org/active_job_basics.html#globalid
8
+ include GlobalID::Identification if RailsJwtAuth.deliver_later
9
+
10
+ field :reset_password_token, type: String
11
+ field :reset_password_sent_at, type: Time
12
+ end
13
+
14
+ validate :validate_reset_password_token, if: :password_digest_changed?
15
+
16
+ before_update do
17
+ self.reset_password_token = nil if password_digest_changed? && reset_password_token
18
+ end
19
+ end
20
+ end
21
+
3
22
  def send_reset_password_instructions
23
+ email_field = RailsJwtAuth.email_field_name! # ensure email field es valid
24
+
4
25
  if self.class.ancestors.include?(RailsJwtAuth::Confirmable) && !confirmed?
5
- errors.add(:email, I18n.t('rails_jwt_auth.errors.unconfirmed'))
26
+ errors.add(email_field, :unconfirmed)
6
27
  return false
7
28
  end
8
29
 
9
30
  self.reset_password_token = SecureRandom.base58(24)
10
- self.reset_password_sent_at = Time.now
31
+ self.reset_password_sent_at = Time.current
11
32
  return false unless save
12
33
 
13
34
  mailer = Mailer.reset_password_instructions(self)
@@ -15,6 +36,7 @@ module RailsJwtAuth
15
36
  end
16
37
 
17
38
  def set_and_send_password_instructions
39
+ RailsJwtAuth.email_field_name! # ensure email field es valid
18
40
  return if password.present?
19
41
 
20
42
  self.password = SecureRandom.base58(48)
@@ -22,7 +44,7 @@ module RailsJwtAuth
22
44
  self.skip_confirmation! if self.class.ancestors.include?(RailsJwtAuth::Confirmable)
23
45
 
24
46
  self.reset_password_token = SecureRandom.base58(24)
25
- self.reset_password_sent_at = Time.now
47
+ self.reset_password_sent_at = Time.current
26
48
  return false unless save
27
49
 
28
50
  mailer = Mailer.set_password_instructions(self)
@@ -30,33 +52,12 @@ module RailsJwtAuth
30
52
  true
31
53
  end
32
54
 
33
- def self.included(base)
34
- base.class_eval do
35
- if base.ancestors.include? Mongoid::Document
36
- # include GlobalID::Identification to use deliver_later method
37
- # http://edgeguides.rubyonrails.org/active_job_basics.html#globalid
38
- include GlobalID::Identification if RailsJwtAuth.deliver_later
39
-
40
- field :reset_password_token, type: String
41
- field :reset_password_sent_at, type: Time
42
- end
43
-
44
- validate :validate_reset_password_token, if: :password_digest_changed?
45
-
46
- before_update do
47
- if password_digest_changed? && reset_password_token
48
- self.reset_password_token = nil
49
- end
50
- end
51
- end
52
- end
53
-
54
- private
55
+ protected
55
56
 
56
57
  def validate_reset_password_token
57
58
  if reset_password_sent_at &&
58
- (reset_password_sent_at < (Time.now - RailsJwtAuth.reset_password_expiration_time))
59
- errors.add(:reset_password_token, I18n.t('rails_jwt_auth.errors.expired'))
59
+ (reset_password_sent_at < (Time.current - RailsJwtAuth.reset_password_expiration_time))
60
+ errors.add(:reset_password_token, :expired)
60
61
  end
61
62
  end
62
63
  end
@@ -1,7 +1,7 @@
1
1
  module RailsJwtAuth
2
2
  module Trackable
3
3
  def update_tracked_fields!(request)
4
- self.last_sign_in_at = Time.now.utc
4
+ self.last_sign_in_at = Time.current
5
5
  self.last_sign_in_ip = request.respond_to?(:remote_ip) ? request.remote_ip : request.ip
6
6
  save(validate: false)
7
7
  end
@@ -1,5 +1,5 @@
1
- <p>Welcome <%= @user.email %>!</p>
1
+ <p>Welcome <%= @user[RailsJwtAuth.email_field_name] %>!</p>
2
2
 
3
3
  <p>You can confirm your account email through the link below:</p>
4
4
 
5
- <p><%= link_to 'Confirm my account', @confirmation_url.html_safe %></p>
5
+ <p><%= link_to 'Confirm my account', @confirmations_url.html_safe %></p>
@@ -0,0 +1,3 @@
1
+ <p>Hello <%= @user[RailsJwtAuth.email_field_name] %>!</p>
2
+
3
+ <p>We're contacting you to notify you that your email is being changed to <%= @user.unconfirmed_email %>.</p>
@@ -1,8 +1,8 @@
1
- <p>Hello <%= @user.email %>!</p>
1
+ <p>Hello <%= @user[RailsJwtAuth.email_field_name] %>!</p>
2
2
 
3
3
  <p>Someone has requested a link to change your password. You can do this through the link below.</p>
4
4
 
5
- <p><%= link_to 'Change my password', @reset_password_url.html_safe %></p>
5
+ <p><%= link_to 'Change my password', @reset_passwords_url.html_safe %></p>
6
6
 
7
7
  <p>If you didn't request this, please ignore this email.</p>
8
8
  <p>Your password won't change until you access the link above and create a new one.</p>
@@ -1,6 +1,6 @@
1
- <p>Hello <%= @user.email %>!</p>
1
+ <p>Hello <%= @user[RailsJwtAuth.email_field_name] %>!</p>
2
2
 
3
3
  <p>Someone has sent you an invitation to App.</p>
4
4
  <p>To complete registration setting a password, please click the following link.</p>
5
5
 
6
- <p><%= link_to "Accept invitation", @accept_invitation_url.html_safe %></p>
6
+ <p><%= link_to "Accept invitation", @invitations_url.html_safe %></p>
@@ -1,5 +1,5 @@
1
- <p>Hello <%= @user.email %>!</p>
1
+ <p>Hello <%= @user[RailsJwtAuth.email_field_name] %>!</p>
2
2
 
3
3
  <p>You need to define your password to complete registration. You can do this through the link below.</p>
4
4
 
5
- <p><%= link_to 'Set my password', @reset_password_url.html_safe %></p>
5
+ <p><%= link_to 'Set my password', @reset_passwords_url.html_safe %></p>
@@ -9,20 +9,5 @@ en:
9
9
  subject: "Set password instructions"
10
10
  send_invitation:
11
11
  subject: "Someone has sent you an invitation!"
12
-
13
- errors:
14
- unconfirmed: "unconfirmed email"
15
- already_confirmed: "was already confirmed, please try signing in"
16
- create_session: "invalid %{field} / password"
17
- expired: "has expired, please request a new one"
18
- invalid: "invalid"
19
- blank: "blank"
20
- not_found: "not found"
21
- missing: "is missing"
22
- email:
23
- invalid: "is not an email"
24
- current_password:
25
- blank: "blank"
26
- invalid: "invalid"
27
- password:
28
- blank: "blank"
12
+ email_changed:
13
+ subject: "Email changed"
@@ -2,16 +2,15 @@ class RailsJwtAuth::InstallGenerator < Rails::Generators::Base
2
2
  source_root File.expand_path('../../templates', __FILE__)
3
3
 
4
4
  def create_initializer_file
5
- copy_file "initializer.rb", "config/initializers/rails_jwt_auth.rb"
5
+ copy_file 'initializer.rb', 'config/initializers/rails_jwt_auth.rb'
6
6
  end
7
7
 
8
8
  def create_routes
9
- route "resource :session, controller: 'rails_jwt_auth/sessions', only: [:create, :destroy]"
10
- route "resource :registration, controller: 'rails_jwt_auth/registrations', only: [:create, :update, :destroy]"
9
+ route "resources :session, controller: 'rails_jwt_auth/sessions', only: [:create, :destroy]"
10
+ route "resources :registration, controller: 'rails_jwt_auth/registrations', only: [:create, :update, :destroy]"
11
11
 
12
- route "resource :confirmation, controller: 'rails_jwt_auth/confirmations', only: [:create, :update]"
13
- route "resource :password, controller: 'rails_jwt_auth/passwords', only: [:create, :update]"
14
-
15
- route "resource :invitation, controller: 'rails_jwt_auth/invitations', only: [:create, :update]"
12
+ route "resources :confirmations, controller: 'rails_jwt_auth/confirmations', only: [:create, :update]"
13
+ route "resources :passwords, controller: 'rails_jwt_auth/passwords', only: [:create, :update]"
14
+ route "resources :invitations, controller: 'rails_jwt_auth/invitations', only: [:create, :update]"
16
15
  end
17
16
  end
@@ -0,0 +1,17 @@
1
+ class RailsJwtAuth::MigrateGenerator < Rails::Generators::Base
2
+ include Rails::Generators::Migration
3
+
4
+ source_root File.expand_path('../templates', __dir__)
5
+
6
+ def self.next_migration_number(_dir)
7
+ Time.current.strftime('%Y%m%d%H%M%S')
8
+ end
9
+
10
+ def create_initializer_file
11
+ migration_template 'migration.rb', "db/migrate/create_#{RailsJwtAuth.table_name}.rb"
12
+ end
13
+
14
+ def migration_version
15
+ "[#{Rails.version.split('.')[0..1].join('.')}]"
16
+ end
17
+ end
@@ -5,11 +5,8 @@ RailsJwtAuth.setup do |config|
5
5
  # field name used to authentication with password
6
6
  #config.auth_field_name = 'email'
7
7
 
8
- # set to true to validate auth_field email format
9
- #config.auth_field_email = true
10
-
11
- # regex used to Validate email format
12
- #config.email_regex = /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
8
+ # define email field name used to send emails
9
+ #config.email_field_name = 'email'
13
10
 
14
11
  # expiration time for generated tokens
15
12
  #config.jwt_expiration_time = 7.days
@@ -18,34 +15,33 @@ RailsJwtAuth.setup do |config|
18
15
  #config.jwt_issuer = 'RailsJwtAuth'
19
16
 
20
17
  # number of simultaneously sessions for an user
21
- #config.simultaneously_sessions = 2
18
+ #config.simultaneous_sessions = 2
22
19
 
23
20
  # mailer sender
24
21
  #config.mailer_sender = 'initialize-mailer_sender@example.com'
25
22
 
26
- # url used to create email link with confirmation token
27
- #config.confirmation_url = 'http://frontend.com/confirmation'
28
-
29
23
  # expiration time for confirmation tokens
30
24
  #config.confirmation_expiration_time = 1.day
31
25
 
26
+ # expiration time for reset password tokens
27
+ #config.reset_password_expiration_time = 1.day
28
+
29
+ # time an invitation is valid after sent
30
+ # config.invitation_expiration_time = 2.days
31
+
32
+ # url used to create email link with confirmation token
33
+ #config.confirmations_url = 'http://frontend.com/confirmation'
34
+
32
35
  # url used to create email link with reset password token
33
- #config.reset_password_url = 'http://frontend.com/reset_password'
36
+ #config.reset_passwords_url = 'http://frontend.com/reset_password'
34
37
 
35
38
  # url used to create email link with set password token
36
- #config.set_password_url = 'http://frontend.com/set_password'
39
+ # by set_and_send_password_instructions method
40
+ #config.set_passwords_url = 'http://frontend.com/set_password'
37
41
 
38
- # expiration time for reset password tokens
39
- #config.reset_password_expiration_time = 1.day
42
+ # url used to create email link with activation token parameter to accept invitation
43
+ #config.invitations_url = 'http://frontend.com/accept_invitation'
40
44
 
41
45
  # uses deliver_later to send emails instead of deliver method
42
46
  #config.deliver_later = false
43
-
44
- # Invitable configuration
45
- #
46
- # Time an invitation is valid after sent
47
- # config.invitation_expiration_time = 2.days
48
- #
49
- # URL used to create email link to activate invitation
50
- # config.accept_invitation_url = 'http://frontend.com/accept_invitation'
51
47
  end
@@ -0,0 +1,29 @@
1
+ class Create<%= RailsJwtAuth.model_name.pluralize %> < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :<%= RailsJwtAuth.table_name %> do |t|
4
+ t.string :email
5
+ t.string :password_digest
6
+ t.string :auth_tokens
7
+
8
+ ## Confirmable
9
+ # t.string :unconfirmed_email
10
+ # t.string :confirmation_token
11
+ # t.datetime :confirmation_sent_at
12
+ # t.datetime :confirmed_at
13
+
14
+ ## Recoverable
15
+ # t.string :reset_password_token
16
+ # t.datetime :reset_password_sent_at
17
+
18
+ ## Trackable
19
+ # t.string :last_sign_in_ip
20
+ # t.datetime :last_sign_in_at
21
+
22
+ ## Invitable
23
+ # t.string :invitation_token
24
+ # t.datetime :invitation_sent_at
25
+ # t.datetime :invitation_accepted_at
26
+ # t.datetime :invitation_created_at
27
+ end
28
+ end
29
+ end
@@ -1,25 +1,4 @@
1
1
  module RailsJwtAuth
2
2
  class Engine < ::Rails::Engine
3
- require 'rails_jwt_auth/strategies/jwt'
4
-
5
- config.generators do |g|
6
- g.test_framework :rspec
7
- g.fixture_replacement :factory_girl, dir: 'spec/factories'
8
- end
9
-
10
- initializer 'rails_jwt_auth.warden' do |app|
11
- app.middleware.insert_after ActionDispatch::Callbacks, Warden::Manager do |manager|
12
- manager.default_strategies :authentication_token
13
- manager.failure_app = UnauthorizedController
14
- end
15
-
16
- Warden::Strategies.add(:authentication_token, Strategies::Jwt)
17
-
18
- Warden::Manager.after_set_user except: :fetch do |record, warden, options|
19
- if record.respond_to?(:update_tracked_fields!) && warden.authenticated?(options[:scope])
20
- record.update_tracked_fields!(warden.request)
21
- end
22
- end
23
- end
24
3
  end
25
4
  end
@@ -0,0 +1,33 @@
1
+ require 'jwt'
2
+
3
+ module RailsJwtAuth
4
+ module JwtManager
5
+ def self.secret_key_base
6
+ Rails.application.secrets.secret_key_base || Rails.application.credentials.secret_key_base
7
+ end
8
+
9
+ # Encodes and signs JWT Payload with expiration
10
+ def self.encode(payload)
11
+ payload.reverse_merge!(meta)
12
+ JWT.encode(payload, secret_key_base)
13
+ end
14
+
15
+ # Decodes the JWT with the signed secret
16
+ # [{"auth_token"=>"xxx", "exp"=>148..., "iss"=>"RJA"}, {"typ"=>"JWT", "alg"=>"HS256"}]
17
+ def self.decode(token)
18
+ JWT.decode(token, secret_key_base)
19
+ end
20
+
21
+ # Default options to be encoded in the token
22
+ def self.meta
23
+ {
24
+ exp: RailsJwtAuth.jwt_expiration_time.from_now.to_i,
25
+ iss: RailsJwtAuth.jwt_issuer
26
+ }
27
+ end
28
+
29
+ def self.decode_from_request(request)
30
+ decode(request.env['HTTP_AUTHORIZATION']&.split&.last)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,19 @@
1
+ module RailsJwtAuth
2
+ module SpecHelpers
3
+ def sign_in(user)
4
+ allow_any_instance_of(RailsJwtAuth::AuthenticableHelper)
5
+ .to receive(:authenticate!).and_return(true)
6
+
7
+ allow_any_instance_of(RailsJwtAuth::AuthenticableHelper)
8
+ .to receive(:current_user).and_return(user.class.find(user.id))
9
+ end
10
+
11
+ def sign_out
12
+ allow_any_instance_of(RailsJwtAuth::AuthenticableHelper)
13
+ .to receive(:authenticate!).and_call_original
14
+
15
+ allow_any_instance_of(RailsJwtAuth::AuthenticableHelper)
16
+ .to receive(:current_user).and_call_original
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module RailsJwtAuth
2
- VERSION = '0.18.1'
2
+ VERSION = '1.3.1'
3
3
  end
@@ -1,62 +1,99 @@
1
- require "warden"
2
- require "bcrypt"
1
+ require 'bcrypt'
3
2
 
4
- require "rails_jwt_auth/engine"
3
+ require 'rails_jwt_auth/engine'
4
+ require 'rails_jwt_auth/jwt_manager'
5
5
 
6
6
  module RailsJwtAuth
7
+ InvalidEmailField = Class.new(StandardError)
8
+ InvalidAuthField = Class.new(StandardError)
9
+ NotConfirmationsUrl = Class.new(StandardError)
10
+ NotInvitationsUrl = Class.new(StandardError)
11
+ NotResetPasswordsUrl = Class.new(StandardError)
12
+ NotSetPasswordsUrl = Class.new(StandardError)
13
+
7
14
  mattr_accessor :model_name
8
- @@model_name = 'User'
15
+ self.model_name = 'User'
9
16
 
10
17
  mattr_accessor :auth_field_name
11
- @@auth_field_name = 'email'
12
-
13
- mattr_accessor :auth_field_email
14
- @@auth_field_email = true
18
+ self.auth_field_name = 'email'
15
19
 
16
- mattr_accessor :email_regex
17
- @@email_regex = /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
20
+ mattr_accessor :email_field_name
21
+ self.email_field_name = 'email'
18
22
 
19
23
  mattr_accessor :jwt_expiration_time
20
- @@jwt_expiration_time = 7.days
24
+ self.jwt_expiration_time = 7.days
21
25
 
22
26
  mattr_accessor :jwt_issuer
23
- @@jwt_issuer = 'RailsJwtAuth'
27
+ self.jwt_issuer = 'RailsJwtAuth'
24
28
 
25
29
  mattr_accessor :simultaneous_sessions
26
- @@simultaneous_sessions = 2
30
+ self.simultaneous_sessions = 2
27
31
 
28
32
  mattr_accessor :mailer_sender
29
- @@mailer_sender = 'initialize-mailer_sender@example.com'
33
+ self.mailer_sender = 'initialize-mailer_sender@example.com'
30
34
 
31
- mattr_accessor :confirmation_url
32
- @@confirmation_url = nil
35
+ mattr_accessor :send_email_changed_notification
36
+ self.send_email_changed_notification = true
33
37
 
34
38
  mattr_accessor :confirmation_expiration_time
35
- @@confirmation_expiration_time = 1.day
39
+ self.confirmation_expiration_time = 1.day
36
40
 
37
- mattr_accessor :reset_password_url
38
- @@reset_password_url = nil
41
+ mattr_accessor :reset_password_expiration_time
42
+ self.reset_password_expiration_time = 1.day
39
43
 
40
- mattr_accessor :set_password_url
41
- @@set_password_url = nil
44
+ mattr_accessor :invitation_expiration_time
45
+ self.invitation_expiration_time = 2.days
42
46
 
43
- mattr_accessor :reset_password_expiration_time
44
- @@reset_password_expiration_time = 1.day
47
+ mattr_accessor :confirmations_url
48
+ self.confirmations_url = nil
45
49
 
46
- mattr_accessor :deliver_later
47
- @@deliver_later = false
50
+ mattr_accessor :reset_passwords_url
51
+ self.reset_passwords_url = nil
48
52
 
49
- mattr_accessor :invitation_expiration_time
50
- @@invitation_expiration_time = 2.days
53
+ mattr_accessor :set_passwords_url
54
+ self.set_passwords_url = nil
51
55
 
52
- mattr_accessor :invitation_url
53
- @@invitation_url = nil
56
+ mattr_accessor :invitations_url
57
+ self.invitations_url = nil
58
+
59
+ mattr_accessor :deliver_later
60
+ self.deliver_later = false
54
61
 
55
62
  def self.model
56
- @@model_name.constantize
63
+ model_name.constantize
64
+ end
65
+
66
+ def self.table_name
67
+ model_name.underscore.pluralize
57
68
  end
58
69
 
59
70
  def self.setup
60
71
  yield self
61
72
  end
73
+
74
+ def self.auth_field_name!
75
+ field_name = RailsJwtAuth.auth_field_name
76
+ klass = RailsJwtAuth.model
77
+
78
+ unless field_name.present? &&
79
+ (klass.respond_to?(:column_names) && klass.column_names.include?(field_name) ||
80
+ klass.respond_to?(:fields) && klass.fields[field_name])
81
+ raise RailsJwtAuth::InvalidAuthField
82
+ end
83
+
84
+ field_name
85
+ end
86
+
87
+ def self.email_field_name!
88
+ field_name = RailsJwtAuth.email_field_name
89
+ klass = RailsJwtAuth.model
90
+
91
+ unless field_name.present? &&
92
+ (klass.respond_to?(:column_names) && klass.column_names.include?(field_name) ||
93
+ klass.respond_to?(:fields) && klass.fields[field_name])
94
+ raise RailsJwtAuth::InvalidEmailField
95
+ end
96
+
97
+ field_name
98
+ end
62
99
  end
metadata CHANGED
@@ -1,71 +1,63 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_jwt_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - rjurado
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-19 00:00:00.000000000 Z
11
+ date: 2019-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '5.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '5.0'
27
- - !ruby/object:Gem::Dependency
28
- name: warden
14
+ name: bcrypt
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - "~>"
32
18
  - !ruby/object:Gem::Version
33
- version: '1.2'
19
+ version: '3.1'
34
20
  type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
24
  - - "~>"
39
25
  - !ruby/object:Gem::Version
40
- version: '1.2'
26
+ version: '3.1'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: jwt
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: '1.5'
33
+ version: '2.1'
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: '1.5'
40
+ version: '2.1'
55
41
  - !ruby/object:Gem::Dependency
56
- name: bcrypt
42
+ name: rails
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - "~>"
45
+ - - ">="
60
46
  - !ruby/object:Gem::Version
61
- version: '3.1'
47
+ version: '5.0'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '6.1'
62
51
  type: :runtime
63
52
  prerelease: false
64
53
  version_requirements: !ruby/object:Gem::Requirement
65
54
  requirements:
66
- - - "~>"
55
+ - - ">="
67
56
  - !ruby/object:Gem::Version
68
- version: '3.1'
57
+ version: '5.0'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '6.1'
69
61
  description: Rails authentication solution based on Warden and JWT and inspired by
70
62
  Devise.
71
63
  email:
@@ -77,9 +69,9 @@ files:
77
69
  - MIT-LICENSE
78
70
  - README.md
79
71
  - Rakefile
72
+ - app/controllers/concerns/rails_jwt_auth/authenticable_helper.rb
80
73
  - app/controllers/concerns/rails_jwt_auth/params_helper.rb
81
74
  - app/controllers/concerns/rails_jwt_auth/render_helper.rb
82
- - app/controllers/concerns/rails_jwt_auth/warden_helper.rb
83
75
  - app/controllers/rails_jwt_auth/confirmations_controller.rb
84
76
  - app/controllers/rails_jwt_auth/invitations_controller.rb
85
77
  - app/controllers/rails_jwt_auth/passwords_controller.rb
@@ -92,23 +84,21 @@ files:
92
84
  - app/models/concerns/rails_jwt_auth/invitable.rb
93
85
  - app/models/concerns/rails_jwt_auth/recoverable.rb
94
86
  - app/models/concerns/rails_jwt_auth/trackable.rb
95
- - app/validators/email_validator.rb
96
87
  - app/views/rails_jwt_auth/mailer/confirmation_instructions.html.erb
88
+ - app/views/rails_jwt_auth/mailer/email_changed.html.erb
97
89
  - app/views/rails_jwt_auth/mailer/reset_password_instructions.html.erb
98
90
  - app/views/rails_jwt_auth/mailer/send_invitation.html.erb
99
91
  - app/views/rails_jwt_auth/mailer/set_password_instructions.html.erb
100
92
  - config/locales/en.yml
101
93
  - lib/generators/rails_jwt_auth/install_generator.rb
94
+ - lib/generators/rails_jwt_auth/migrate_generator.rb
102
95
  - lib/generators/templates/initializer.rb
96
+ - lib/generators/templates/migration.rb
103
97
  - lib/rails_jwt_auth.rb
104
98
  - lib/rails_jwt_auth/engine.rb
105
- - lib/rails_jwt_auth/jwt/manager.rb
106
- - lib/rails_jwt_auth/jwt/request.rb
107
- - lib/rails_jwt_auth/spec/helpers.rb
108
- - lib/rails_jwt_auth/spec/not_authorized.rb
109
- - lib/rails_jwt_auth/strategies/jwt.rb
99
+ - lib/rails_jwt_auth/jwt_manager.rb
100
+ - lib/rails_jwt_auth/spec_helpers.rb
110
101
  - lib/rails_jwt_auth/version.rb
111
- - lib/tasks/rails_token_jwt_tasks.rake
112
102
  homepage: https://github.com/rjurado01/rails_jwt_auth
113
103
  licenses:
114
104
  - MIT
@@ -129,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
119
  version: '0'
130
120
  requirements: []
131
121
  rubyforge_project:
132
- rubygems_version: 2.5.2
122
+ rubygems_version: 2.7.3
133
123
  signing_key:
134
124
  specification_version: 4
135
125
  summary: Rails jwt authentication.