Skip to content

Commit c618d6f

Browse files
author
Alexei
committed
fix in acts_as_jwt_authenticatable: mattr_accessor to class method
1 parent ad497ed commit c618d6f

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

lib/jwt_authentication/acts_as_jwt_authenticatable.rb

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ module ActsAsJwtAuthenticatable
99
private :generate_authentication_token
1010
private :token_suitable?
1111
private :token_generator
12-
13-
mattr_accessor :jwt_timeout
14-
mattr_accessor :jwt_timeout_remember_me
1512
end
1613

1714
def ensure_authentication_token
@@ -40,7 +37,7 @@ def token_generator
4037
end
4138

4239
def jwt_token(remember = false)
43-
data = self.class.instance_variable_get("@jwt_key_fields").inject({}) { |hash, field| hash[field] = self.send field; hash }
40+
data = self.class.jwt_key_fields.inject({}) { |hash, field| hash[field] = self.send field; hash }
4441
payload = {
4542
exp: (Time.now + jwt_session_duration(remember)).to_i,
4643
self.class.name.underscore => data
@@ -55,9 +52,21 @@ def jwt_session_duration(remember = false)
5552
module ClassMethods
5653
def acts_as_jwt_authenticatable(options = {})
5754
before_save :ensure_authentication_token
58-
self.jwt_timeout_remember_me = options[:timeout_remember_me] || JwtAuthentication.jwt_timeout_remember_me
59-
self.jwt_timeout = options[:timeout] || JwtAuthentication.jwt_timeout
60-
self.instance_variable_set("@jwt_key_fields", options[:key_fields] || JwtAuthentication.key_fields)
55+
@jwt_timeout_remember_me = options[:timeout_remember_me] || JwtAuthentication.jwt_timeout_remember_me
56+
@jwt_timeout = options[:timeout] || JwtAuthentication.jwt_timeout
57+
@jwt_key_fields = options[:key_fields] || JwtAuthentication.key_fields
58+
end
59+
60+
def jwt_timeout
61+
self.instance_variable_get("@jwt_timeout")
62+
end
63+
64+
def jwt_timeout_remember_me
65+
self.instance_variable_get("@jwt_timeout_remember_me")
66+
end
67+
68+
def jwt_key_fields
69+
self.instance_variable_get("@jwt_key_fields")
6170
end
6271
end
6372
end

lib/jwt_authentication/entity.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@ def token_param_name(controller)
2525
controller.jwt_models[name_underscore.to_sym][:param_name] || "#{name_underscore}_token"
2626
end
2727

28-
def key_fields
29-
@model.instance_variable_get("@jwt_key_fields") || JwtAuthentication.key_fields
30-
end
31-
3228
def get_token_from_params_or_headers(controller)
3329
(controller.request.headers[token_header_name(controller)] || controller.params[token_param_name(controller)]).to_s
3430
end
@@ -37,7 +33,7 @@ def get_entity(controller)
3733
begin
3834
token = get_token_from_params_or_headers controller
3935
payload = JWT.decode(token, nil, false)[0] # get payload; decode can riase: JWT::DecodeError
40-
keys = model.instance_variable_get("@jwt_key_fields").inject({}) do |hash, field|
36+
keys = model.jwt_key_fields.inject({}) do |hash, field|
4137
hash[field] = payload[name_underscore][field.to_s]
4238
hash
4339
end

0 commit comments

Comments
 (0)