class Mumukit::Auth::Client

Attributes

id[R]
secret[R]

Public Class Methods

new(options={}) click to toggle source
# File lib/mumukit/auth/client.rb, line 5
def initialize(options={})
  with_config options do |config|
    @id = config[:id]
    @secret = config[:secret]
  end
end

Public Instance Methods

decode(encoded_jwt) click to toggle source
# File lib/mumukit/auth/client.rb, line 20
def decode(encoded_jwt)
  JWT.decode(encoded_jwt, decoded_secret)[0]
end
decoded_secret() click to toggle source
# File lib/mumukit/auth/client.rb, line 12
def decoded_secret
  JWT.base64url_decode(secret)
end
encode(jwt_hash) click to toggle source
# File lib/mumukit/auth/client.rb, line 16
def encode(jwt_hash)
  JWT.encode(jwt_hash, decoded_secret)
end

Private Instance Methods

with_config(options) { |config| ... } click to toggle source
# File lib/mumukit/auth/client.rb, line 26
def with_config(options)
  client = options[:client] || :default
  config = Mumukit::Auth.config.clients[client]

  raise "client config for #{client} is missing" if config.blank?
  raise "client id for #{client} is missing" if config[:id].blank?
  raise "client secret for #{client} is missing" if config[:secret].blank?

  yield config
end