Module: Eluvia::Jwt
- Defined in:
- lib/eluvia/utils/jwt.rb
Class Method Summary collapse
- .decode_jwt_token(token) ⇒ Object
- .encode_jwt_token(payload, exp = 1.hours.from_now) ⇒ Object
- .encode_private_jwt_token(exp = 1.hours.from_now) ⇒ Object
- .encode_public_jwt_token(user, exp = 1.hours.from_now) ⇒ Object
- .get_secret_key ⇒ Object
Class Method Details
.decode_jwt_token(token) ⇒ Object
26 27 28 29 |
# File 'lib/eluvia/utils/jwt.rb', line 26 def self.decode_jwt_token(token) decoded = JWT.decode(token, get_secret_key)[0] HashWithIndifferentAccess.new(decoded) end |
.encode_jwt_token(payload, exp = 1.hours.from_now) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/eluvia/utils/jwt.rb', line 17 def self.encode_jwt_token(payload, exp = 1.hours.from_now) payload[:exp] = exp.to_i if Eluvia::Base::Config.secure_jwt payload[:iat] = Time.now.to_i payload[:jti] = SecureRandom.uuid end JWT.encode(payload, get_secret_key) end |
.encode_private_jwt_token(exp = 1.hours.from_now) ⇒ Object
7 8 9 10 |
# File 'lib/eluvia/utils/jwt.rb', line 7 def self.encode_private_jwt_token(exp = 1.hours.from_now) payload = { token_type: 'private_token' } encode_jwt_token(payload, exp) end |
.encode_public_jwt_token(user, exp = 1.hours.from_now) ⇒ Object
12 13 14 15 |
# File 'lib/eluvia/utils/jwt.rb', line 12 def self.encode_public_jwt_token(user, exp = 1.hours.from_now) payload = { token_type: 'access', user: JSON.parse(user.to_json) } encode_jwt_token(payload, exp) end |