module Osso::OAuth2Token

Public Class Methods

included(klass) click to toggle source
# File lib/osso/lib/oauth2_token.rb, line 7
def self.included(klass)
  klass.class_eval do
    cattr_accessor :default_lifetime
    self.default_lifetime = 1.minute
    belongs_to :user
    belongs_to :oauth_client

    before_validation :setup, on: :create
    validates :oauth_client, :expires_at, presence: true
    validates :token, presence: true, uniqueness: true

    scope :valid, -> { where('expires_at > ?', Time.now.utc) }
  end
end

Public Instance Methods

expired!() click to toggle source
# File lib/osso/lib/oauth2_token.rb, line 26
def expired!
  self.expires_at = Time.now.utc
  save!
end
expires_in() click to toggle source
# File lib/osso/lib/oauth2_token.rb, line 22
def expires_in
  (expires_at - Time.now.utc).to_i
end

Private Instance Methods

setup() click to toggle source
# File lib/osso/lib/oauth2_token.rb, line 33
def setup
  self.token = SecureRandom.hex(32)
  self.expires_at ||= default_lifetime.from_now
end