module GoSso
Constants
- VERSION
Public Class Methods
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