Class: OmniAuth::Strategies::Heroku

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

Constant Summary collapse

AuthUrl =
ENV["HEROKU_AUTH_URL"] || "https://id.heroku.com"
ApiUrl =
ENV["HEROKU_API_URL"]  || "https://api.heroku.com"

Instance Method Summary collapse

Instance Method Details

#account_infoObject



59
60
61
# File 'lib/omniauth/strategies/heroku.rb', line 59

def 
  @account_info ||= MultiJson.decode(heroku_api.get("/account").body)
end

#heroku_apiObject



63
64
65
66
67
68
69
70
# File 'lib/omniauth/strategies/heroku.rb', line 63

def heroku_api
  @heroku_api ||= Faraday.new(
    url: ApiUrl,
    headers: {
      "Accept" => "application/vnd.heroku+json; version=3",
      "Authorization" => "Bearer #{access_token.token}",
    })
end

#missing_client_id?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/omniauth/strategies/heroku.rb', line 72

def missing_client_id?
  [nil, ""].include?(options.client_id)
end

#missing_client_secret?Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/omniauth/strategies/heroku.rb', line 76

def missing_client_secret?
  [nil, ""].include?(options.client_secret)
end

#request_phaseObject

override method in OmniAuth::Strategies::OAuth2 to error when we don’t have a client_id or secret:



49
50
51
52
53
54
55
56
57
# File 'lib/omniauth/strategies/heroku.rb', line 49

def request_phase
  if missing_client_id?
    fail!(:missing_client_id)
  elsif missing_client_secret?
    fail!(:missing_client_secret)
  else
    super
  end
end