class Devise::Strategies::Doorkeeper

Constants

WARDEN_INVALID_TOKEN_MESSAGE
WARDEN_UNCONFIRMED_RESOURCE_MESSAGE

Public Instance Methods

authenticate!() click to toggle source
# File lib/devise/strategies/doorkeeper.rb, line 17
def authenticate!
  resource = resource_from_token
  if validate(resource)
    request.env['devise.skip_trackable'] = true
    if resource.active_for_authentication?
      success!(resource)
    else
      unconfirmed_resource
    end
  else
    invalid_token
  end
end
authentication_type() click to toggle source

override base class implementation allow for Rails application to configure skipping session storage for doorkeeper requests see Devise skip_session_storage configuration

# File lib/devise/strategies/doorkeeper.rb, line 35
def authentication_type
  :doorkeeper
end
clean_up_csrf?() click to toggle source

override base class implementation API requests should not reset the user's CSRF token which triggers rails to set the session_id key and send cookies to users

# File lib/devise/strategies/doorkeeper.rb, line 43
def clean_up_csrf?
  false
end
valid?() click to toggle source
# File lib/devise/strategies/doorkeeper.rb, line 12
def valid?
  credentials = ::Doorkeeper::OAuth::Token.from_request(request, *access_token_methods)
  credentials.present?
end

Private Instance Methods

access_token_methods() click to toggle source
# File lib/devise/strategies/doorkeeper.rb, line 66
def access_token_methods
  ::Doorkeeper.configuration.access_token_methods
end
invalid_token() click to toggle source
# File lib/devise/strategies/doorkeeper.rb, line 61
def invalid_token
  fail!(WARDEN_INVALID_TOKEN_MESSAGE)
  throw :warden
end
resource_from_token() click to toggle source
# File lib/devise/strategies/doorkeeper.rb, line 49
def resource_from_token
  token = ::Doorkeeper.authenticate(request)
  scopes = ::Doorkeeper.configuration.default_scopes
  invalid_token unless token && token.acceptable?(scopes)
  mapping.to.find(token.resource_owner_id)
end
unconfirmed_resource() click to toggle source
# File lib/devise/strategies/doorkeeper.rb, line 56
def unconfirmed_resource
  fail!(WARDEN_UNCONFIRMED_RESOURCE_MESSAGE)
  throw :warden
end