class Doorkeeper::OAuth::RefreshTokenRequest

Attributes

access_token[RW]
client[RW]
credentials[RW]
refresh_token[RW]
refresh_token_parameter[R]
server[RW]

Public Class Methods

new(server, refresh_token, credentials, parameters = {}) click to toggle source
# File lib/doorkeeper/oauth/refresh_token_request.rb, line 17
def initialize(server, refresh_token, credentials, parameters = {})
  @server          = server
  @refresh_token   = refresh_token
  @credentials     = credentials
  @original_scopes = parameters[:scope] || parameters[:scopes]
  @refresh_token_parameter = parameters[:refresh_token]

  if credentials
    @client = Application.by_uid_and_secret credentials.uid,
                                            credentials.secret
  end
end

Private Instance Methods

before_successful_response() click to toggle source
# File lib/doorkeeper/oauth/refresh_token_request.rb, line 34
def before_successful_response
  refresh_token.transaction do
    refresh_token.lock!
    raise Errors::InvalidTokenReuse if refresh_token.revoked?

    refresh_token.revoke
    create_access_token
  end
end
create_access_token() click to toggle source
# File lib/doorkeeper/oauth/refresh_token_request.rb, line 48
def create_access_token
  expires_in = Authorization::Token.access_token_expires_in(
    server,
    client
  )

  @access_token = AccessToken.create!(
    application_id: refresh_token.application_id,
    resource_owner_id: refresh_token.resource_owner_id,
    scopes: scopes.to_s,
    expires_in: expires_in,
    use_refresh_token: true)
end
default_scopes() click to toggle source
# File lib/doorkeeper/oauth/refresh_token_request.rb, line 44
def default_scopes
  refresh_token.scopes
end
validate_client() click to toggle source
# File lib/doorkeeper/oauth/refresh_token_request.rb, line 70
def validate_client
  !credentials || !!client
end
validate_client_match() click to toggle source
# File lib/doorkeeper/oauth/refresh_token_request.rb, line 74
def validate_client_match
  !client || refresh_token.application_id == client.id
end
validate_scope() click to toggle source
# File lib/doorkeeper/oauth/refresh_token_request.rb, line 78
def validate_scope
  if @original_scopes.present?
    ScopeChecker.valid?(@original_scopes, refresh_token.scopes)
  else
    true
  end
end
validate_token() click to toggle source
# File lib/doorkeeper/oauth/refresh_token_request.rb, line 66
def validate_token
  refresh_token.present? && !refresh_token.revoked?
end
validate_token_presence() click to toggle source
# File lib/doorkeeper/oauth/refresh_token_request.rb, line 62
def validate_token_presence
  refresh_token.present? || refresh_token_parameter.present?
end