Sha256: a8a83cd4392487bc84c00204ff2181e55a1c71412652766fda3013bf8f5a7072

Contents?: true

Size: 620 Bytes

Versions: 18

Compression:

Stored size: 620 Bytes

Contents

class ApiClient < ApplicationRecord

  belongs_to :user
  accepts_nested_attributes_for :user
  validates_presence_of :description

  #TODO add JWT expiration and api client invalidation
  #TODO rename toke to encoded_token
  before_create :set_encoded_token!

  def verify!
    raise 'Invalid Api Client' if Mumukit::Auth::Token.decode(token).uid != user.uid
  end

  def self.verify_token!(token)
    client = find_by token: token
    raise 'No Api Client found for Token' unless client
    client.verify!
  end

  private

  def set_encoded_token!
    self.token = Mumukit::Auth::Token.encode user.uid, {}
  end

end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
mumuki-laboratory-5.10.0 app/models/api_client.rb
mumuki-laboratory-5.9.1 app/models/api_client.rb
mumuki-laboratory-5.9.0 app/models/api_client.rb
mumuki-laboratory-5.8.3 app/models/api_client.rb
mumuki-laboratory-5.8.1 app/models/api_client.rb
mumuki-laboratory-5.8.0 app/models/api_client.rb
mumuki-laboratory-5.7.0 app/models/api_client.rb
mumuki-laboratory-5.6.3 app/models/api_client.rb
mumuki-laboratory-5.6.2 app/models/api_client.rb
mumuki-laboratory-5.6.1 app/models/api_client.rb
mumuki-laboratory-5.6.0 app/models/api_client.rb
mumuki-laboratory-5.5.0 app/models/api_client.rb
mumuki-laboratory-5.4.0 app/models/api_client.rb
mumuki-laboratory-5.3.0 app/models/api_client.rb
mumuki-laboratory-5.2.1 app/models/api_client.rb
mumuki-laboratory-5.2.0 app/models/api_client.rb
mumuki-laboratory-5.1.1 app/models/api_client.rb
mumuki-laboratory-5.1.0 app/models/api_client.rb