module GoSso

Constants

VERSION

Public Class Methods

authorize_url() click to toggle source
# File lib/go_sso.rb, line 41
def self.authorize_url
  client.auth_code.authorize_url(redirect_uri: Rails.application.routes.url_helpers.go_sso_callback_url(host: current_host))
end
client() click to toggle source
# File lib/go_sso.rb, line 37
def self.client
  @client ||= OAuth2::Client.new(client_id, client_secret, site: site)
end
current_host() click to toggle source
# File lib/go_sso.rb, line 49
def self.current_host
  host || Current.host
end
generate_fake_token() click to toggle source
# File lib/go_sso.rb, line 68
def self.generate_fake_token
  OAuth2::AccessToken.new(client, SecureRandom.urlsafe_base64, expires_in: 2.hours)
end
get_token(code) click to toggle source
# File lib/go_sso.rb, line 45
def self.get_token(code)
  client.auth_code.get_token(code, redirect_uri: Rails.application.routes.url_helpers.go_sso_callback_url(host: current_host))
end
get_user_json(token = nil) click to toggle source
# File lib/go_sso.rb, line 53
def self.get_user_json(token = nil)
  return fake_user_json.as_json if test_mode?
  o_token = OAuth2::AccessToken.new(client, token)
  json_str = Rails.cache.fetch([:go_sso_user, token], expires_in: user_cache_ttl) do
    o_token.get(GoSso.user_json_url).body
  end
  JSON.parse(json_str)
rescue Faraday::ConnectionFailed
  raise GoSso::FailedToOpenConnection
end
set_default_options!() click to toggle source
# File lib/go_sso.rb, line 26
def self.set_default_options!
  self.client_id = ENV['GO_SSO_CLIENT_ID']
  self.client_secret = ENV['GO_SSO_CLIENT_SECRET']
  self.site = ENV['GO_SSO_CLIENT_SITE']
  self.main_app_module_name = if Rails::VERSION::MAJOR == 6
    Rails.application.class.module_parent.to_s
  else
    Rails.application.class.parent.to_s
  end
end
setup() { |self| ... } click to toggle source
# File lib/go_sso.rb, line 22
def self.setup
  yield self
end
test_mode?() click to toggle source
# File lib/go_sso.rb, line 64
def self.test_mode?
  fake_user_json.present?
end