Sha256: 0be894038ace8e6a6f1a4de4c622fc17a24c8fea4b0d820e6b24e65472f7ffc2

Contents?: true

Size: 490 Bytes

Versions: 3

Compression:

Stored size: 490 Bytes

Contents

module Dune::Api
  class AccessToken < ActiveRecord::Base
    self.table_name = :api_access_tokens

    default_scope { where(expired: false) }
    belongs_to :user

    before_create :generate_token

    def expire!
      self.expired = true
      save
    end

    protected

    def generate_token
      self.code = loop do
        random_token = SecureRandom.urlsafe_base64(50, false)
        break random_token unless self.class.exists?(code: random_token)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dune-api-1.1.0 app/models/dune/api/access_token.rb
dune-api-1.0.2 app/models/dune/api/access_token.rb
dune-api-1.0.1 app/models/dune/api/access_token.rb