class Doorkeeper::OAuth::Authorization::Token

def self.access_token_expires_in(server, pre_auth)

def self.access_token_expires_in(server, pre_auth)
  custom_expiration = server.
    custom_access_token_expires_in.call(pre_auth)
  if custom_expiration
    custom_expiration
  else
    server.access_token_expires_in
  end
end

def configuration

def configuration
  Doorkeeper.configuration
end

def initialize(pre_auth, resource_owner)

def initialize(pre_auth, resource_owner)
  @pre_auth       = pre_auth
  @resource_owner = resource_owner
end

def issue_token

def issue_token
  @token ||= AccessToken.find_or_create_for(
    pre_auth.client,
    resource_owner.id,
    pre_auth.scopes,
    self.class.access_token_expires_in(configuration, pre_auth),
    false
  )
end

def native_redirect

def native_redirect
  {
    controller: 'doorkeeper/token_info',
    action: :show,
    access_token: token.token
  }
end