Module: GoSso
- Defined in:
- lib/go_sso.rb,
lib/go_sso/engine.rb,
lib/go_sso/version.rb,
lib/go_sso/middleware.rb,
lib/go_sso/controllers/helpers.rb,
app/jobs/go_sso/application_job.rb,
app/helpers/go_sso/application_helper.rb,
app/mailers/go_sso/application_mailer.rb,
app/controllers/go_sso/application_controller.rb
Defined Under Namespace
Modules: ApplicationHelper, Controllers
Classes: ApplicationController, ApplicationJob, ApplicationMailer, Current, Engine, FailedToOpenConnection, Middleware, User
Constant Summary
collapse
- VERSION =
'0.4.1'
Class Method Summary
collapse
Class Method Details
.authorize_url ⇒ Object
42
43
44
|
# File 'lib/go_sso.rb', line 42
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 ⇒ Object
38
39
40
|
# File 'lib/go_sso.rb', line 38
def self.client
@client ||= OAuth2::Client.new(client_id, client_secret, site: site)
end
|
.current_host ⇒ Object
50
51
52
|
# File 'lib/go_sso.rb', line 50
def self.current_host
host || Current.host
end
|
.generate_fake_token ⇒ Object
69
70
71
|
# File 'lib/go_sso.rb', line 69
def self.generate_fake_token
OAuth2::AccessToken.new(client, SecureRandom.urlsafe_base64, expires_in: 2.hours)
end
|
.get_token(code) ⇒ Object
46
47
48
|
# File 'lib/go_sso.rb', line 46
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) ⇒ Object
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/go_sso.rb', line 54
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! ⇒ Object
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/go_sso.rb', line 27
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| ... } ⇒ Object
23
24
25
|
# File 'lib/go_sso.rb', line 23
def self.setup
yield self
end
|
.test_mode? ⇒ Boolean
65
66
67
|
# File 'lib/go_sso.rb', line 65
def self.test_mode?
fake_user_json.present?
end
|