class ApiUser

Constants

JWT_SECRET

Public Class Methods

create_token(user) click to toggle source
# File lib/generators/petergate_api/templates/lib/api_user.rb, line 19
def self.create_token(user)
  payload = {id: user.id, name: user.name, roles: user.roles, email: user.email}
  JWT.encode(payload, JWT_SECRET, 'HS256')
end
new(token) click to toggle source
# File lib/generators/petergate_api/templates/lib/api_user.rb, line 6
def initialize(token)
  @jwt = JWT.decode(token, JWT_SECRET, true, {algorithm: 'HS256'}).first
  @jwt.each do |k, v|
    v = v.map(&:to_sym) if v.is_a?(Array)
    define_singleton_method(k){v}
  end
end

Public Instance Methods

method_missing(sym, *args, &block) click to toggle source
# File lib/generators/petergate_api/templates/lib/api_user.rb, line 14
def method_missing(sym, *args, &block)
  @user ||= (User.find(id) || User.first)
  return @user.send(sym, *args, &block)
end