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