Class: OmniAuth::Strategies::Digitalocean

Inherits:
OAuth2
  • Object
show all
Defined in:
lib/omniauth/strategies/digitalocean.rb

Overview

Authenticate to DigitalOcean via OAuth and retrieve basic user information. Usage:

use OmniAuth::Strategies::Digitalocean, 'consumerkey', 'consumersecret', :scope => 'read write', :display => 'plain'

Constant Summary collapse

AUTHENTICATION_PARAMETERS =
%w(display account state scope)
BASE_URL =
"https://cloud.digitalocean.com"
API_URL =
"https://api.digitalocean.com"

Instance Method Summary collapse

Instance Method Details

#authorize_paramsObject

You can pass display, state or scope params to the auth request, if you need to set them dynamically. You can also set these options in the OmniAuth config :authorize_params option.

/v1/auth/digialocean?display=fancy&state=ABC



79
80
81
82
83
84
85
# File 'lib/omniauth/strategies/digitalocean.rb', line 79

def authorize_params
  super.tap do |params|
    AUTHENTICATION_PARAMETERS.each do |v|
      params[v.to_sym] = request.params[v] if request.params[v]
    end
  end
end

#callback_phaseObject

Hook used after response with code from provider. Used to prep token request from provider.



64
65
66
# File 'lib/omniauth/strategies/digitalocean.rb', line 64

def callback_phase
  super
end

#callback_urlObject

Over-ride callback_url definition to maintain compatability with omniauth-oauth2 >= 1.4.0

See: github.com/intridea/omniauth-oauth2/issues/81



52
53
54
# File 'lib/omniauth/strategies/digitalocean.rb', line 52

def callback_url
  full_host + script_name + callback_path
end

#raw_infoObject



68
69
70
# File 'lib/omniauth/strategies/digitalocean.rb', line 68

def raw_info
  @raw_info ||= access_token.get("#{API_URL}/v2/account")
end

#request_phaseObject

Hook useful for appending parameters into the auth url before sending to provider.



58
59
60
# File 'lib/omniauth/strategies/digitalocean.rb', line 58

def request_phase
  super
end