@@ -9,6 +9,7 @@ module ActsAsJwtAuthenticatable
99 private :generate_authentication_token
1010 private :token_suitable?
1111 private :token_generator
12+ private :token_expires_and_data
1213 end
1314
1415 def ensure_authentication_token
@@ -36,13 +37,21 @@ def token_generator
3637 @token_generator ||= TokenGenerator . new
3738 end
3839
39- def jwt_token ( remember = false )
40+ def token_expires_and_data ( remember = false )
4041 data = self . class . jwt_key_fields . inject ( { } ) { |hash , field | hash [ field ] = self . send field ; hash }
41- payload = {
42- exp : ( Time . now + jwt_session_duration ( remember ) ) . to_i ,
43- self . class . name . underscore => data
44- }
45- JWT . encode ( payload , self . authentication_token )
42+
43+ [ Time . now + jwt_session_duration ( remember ) , data ]
44+ end
45+
46+ def jwt_token_and_expires ( remember = false )
47+ expires , data = token_expires_and_data ( remember )
48+ payload = { exp : expires . to_i , self . class . name . underscore => data }
49+
50+ [ JWT . encode ( payload , self . authentication_token ) , expires ]
51+ end
52+
53+ def jwt_token ( remember = false )
54+ jwt_token_and_expires ( remember ) . first
4655 end
4756
4857 def jwt_session_duration ( remember = false )
0 commit comments