module Grape::OAuth2::Sequel::AccessToken

Grape::OAuth2 Access Token role mixin for Sequel toolkit. Includes all the required API, associations, validations and callbacks.

Public Class Methods

authenticate(token, type: :access_token) click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 40
def authenticate(token, type: :access_token)
  if type && type.to_sym == :refresh_token
    first(refresh_token: token.to_s)
  else
    first(token: token.to_s)
  end
end
create_for(client, resource_owner, scopes = nil) click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 32
def create_for(client, resource_owner, scopes = nil)
  create(
    client: client,
    resource_owner: resource_owner,
    scopes: scopes.to_s
  )
end

Public Instance Methods

before_validation() click to toggle source
Calls superclass method
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 16
def before_validation
  if new?
    setup_expiration
    generate_tokens
  end

  super
end
expired?() click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 49
def expired?
  !expires_at.nil? && Time.now.utc > expires_at.utc
end
generate_tokens() click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 73
def generate_tokens
  self.token = Grape::OAuth2.config.token_generator.generate(values) if token.blank?
  self.refresh_token = Grape::OAuth2::UniqueToken.generate if Grape::OAuth2.config.issue_refresh_token
end
revoke!(revoked_at = Time.now) click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 57
def revoke!(revoked_at = Time.now)
  set(revoked_at: revoked_at.utc)
  save(columns: [:revoked_at], validate: false)
end
revoked?() click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 53
def revoked?
  !revoked_at.nil? && revoked_at <= Time.now.utc
end
setup_expiration() click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 78
def setup_expiration
  expires_in = Grape::OAuth2.config.access_token_lifetime
  self.expires_at = Time.now + expires_in if expires_at.nil? && !expires_in.nil?
end
to_bearer_token() click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 62
def to_bearer_token
  {
    access_token: token,
    expires_in: expires_at && Grape::OAuth2.config.access_token_lifetime.to_i,
    refresh_token: refresh_token,
    scope: scopes
  }
end
validate() click to toggle source
Calls superclass method
# File lib/grape_oauth2/mixins/sequel/access_token.rb, line 25
def validate
  super
  validates_presence :token
  validates_unique :token
end