module Doorkeeper::AccessTokenMixin

def acceptable?(scopes)

Returns:
  • (Boolean) - true if record is accessible and includes scopes or

Parameters:
  • scopes (Array) -- scopes
def acceptable?(scopes)
  accessible? && includes_scope?(*scopes)
end

def as_json(_options = {})

Returns:
  • (Hash) - hash with token data
def as_json(_options = {})
  {
    resource_owner_id:  resource_owner_id,
    scopes:             scopes,
    expires_in_seconds: expires_in_seconds,
    application:        { uid: application.try(:uid) },
    created_at:         created_at.to_i
  }
end

def generate_refresh_token

Returns:
  • (String) - refresh token value
def generate_refresh_token
  write_attribute :refresh_token, UniqueToken.generate
end

def generate_token

Raises:
  • (Doorkeeper::Errors::TokenGeneratorNotFound) -
  • (Doorkeeper::Errors::UnableToGenerateToken) -

Returns:
  • (String) - generated token value
def generate_token
  self.created_at ||= Time.now.utc
  generator = Doorkeeper.configuration.access_token_generator.constantize
  self.token = generator.generate(
    resource_owner_id: resource_owner_id,
    scopes: scopes,
    application: application,
    expires_in: expires_in,
    created_at: created_at
  )
rescue NoMethodError
  raise Errors::UnableToGenerateToken, "#{generator} does not respond to `.generate`."
rescue NameError
  raise Errors::TokenGeneratorNotFound, "#{generator} not found"
end

def same_credential?(access_token)

Returns:
  • (Boolean) - true if credentials are same of false in other cases

Parameters:
  • access_token (Doorkeeper::AccessToken) -- other token
def same_credential?(access_token)
  application_id == access_token.application_id &&
    resource_owner_id == access_token.resource_owner_id
end

def token_type

Other tags:
    See: https://tools.ietf.org/html/rfc6750 -
def token_type
  'bearer'
end

def use_refresh_token?

def use_refresh_token?
  @use_refresh_token ||= false
  !!@use_refresh_token
end