module Libis::Ingester::API::TokenHelper
Constants
- ISSUER
Public Instance Methods
current_user()
click to toggle source
# File lib/libis/ingester/server/api/helpers/token.rb, line 42 def current_user() end
jwt_decode(token)
click to toggle source
# File lib/libis/ingester/server/api/helpers/token.rb, line 18 def jwt_decode(token) payload = JWT.decode(token, RSA_PUBLIC, true, {algorithm: 'RS256', iss: ISSUER, verify_iss: true, verify_iat: true}).first payload.reject {|k, _| %w'iat exp iss'.include? k} rescue JWT::DecodeError => e api_error(401, e.message) rescue Exception => e api_error(401, e.message) end
jwt_encode(payload)
click to toggle source
# File lib/libis/ingester/server/api/helpers/token.rb, line 8 def jwt_encode(payload) data = payload.merge( iat: Time.now.to_i, exp: Time.now.to_i + 4 * 3600, iss: ISSUER ) result = JWT.encode(data, RSA_PRIVATE, 'RS256') result end
jwt_refresh(token)
click to toggle source
# File lib/libis/ingester/server/api/helpers/token.rb, line 28 def jwt_refresh(token) payload = jwt_decode(token) jwt_encode(payload) end
jwt_tokenuser(token)
click to toggle source
# File lib/libis/ingester/server/api/helpers/token.rb, line 37 def jwt_tokenuser(token) payload = jwt_decode(token) user = Libis::Ingester::User.find_by(id: payload.id) end
jwt_usertoken(user)
click to toggle source
# File lib/libis/ingester/server/api/helpers/token.rb, line 33 def jwt_usertoken(user) jwt_encode({user: {id: user.id.to_s, name: user.name, role: user.role}}) end