class Sitefull::Auth::Base
Constants
- MISSING_AUTHORIZATION_URI
- MISSING_BASE_URI
- MISSING_BASE_URI_SCHEME
- MISSING_CALLBACK_URI
- MISSING_CLIENT_ID
- MISSING_CLIENT_SECRET
- MISSING_REDIRECT_URI_SCHEME
- MISSING_SCOPE
- MISSING_TOKEN_CREDENTIALS_URI
Public Class Methods
new(options = {})
click to toggle source
# File lib/sitefull-cloud/auth/base.rb, line 15 def initialize(options = {}) @options = validate(options) if options[:validate].to_s.empty? || options[:validate] end
Public Instance Methods
callback_uri()
click to toggle source
# File lib/sitefull-cloud/auth/base.rb, line 34 def callback_uri fail MISSING_CALLBACK_URI end
required_settings()
click to toggle source
# File lib/sitefull-cloud/auth/base.rb, line 50 def required_settings [:client_id, :client_secret] end
scope()
click to toggle source
# File lib/sitefull-cloud/auth/base.rb, line 42 def scope fail MISSING_SCOPE end
token_credentials_uri(_)
click to toggle source
# File lib/sitefull-cloud/auth/base.rb, line 46 def token_credentials_uri(_) fail MISSING_TOKEN_CREDENTIALS_URI end
token_options()
click to toggle source
# File lib/sitefull-cloud/auth/base.rb, line 26 def token_options @options.select { |k| [:authorization_uri, :client_id, :client_secret, :scope, :token_credential_uri, :redirect_uri].include? k.to_sym }.merge(@options[:token] || {}) end
validate(options = {})
click to toggle source
# File lib/sitefull-cloud/auth/base.rb, line 19 def validate(options = {}) fail MISSING_CLIENT_ID if options[:client_id].to_s.empty? fail MISSING_CLIENT_SECRET if options[:client_secret].to_s.empty? fail MISSING_REDIRECT_URI_SCHEME if !options[:redirect_uri].to_s.empty? && URI(options[:redirect_uri].to_s).scheme.to_s.empty? process(options) end
Private Instance Methods
default_redirect_uri(options)
click to toggle source
# File lib/sitefull-cloud/auth/base.rb, line 65 def default_redirect_uri(options) fail MISSING_BASE_URI if options[:base_uri].to_s.empty? fail MISSING_BASE_URI_SCHEME if URI(options[:base_uri].to_s).scheme.to_s.empty? URI.join(options[:base_uri].to_s, callback_uri).to_s end
process(options = {})
click to toggle source
# File lib/sitefull-cloud/auth/base.rb, line 56 def process(options = {}) options[:redirect_uri] ||= default_redirect_uri(options) if options[:token].to_s.empty? options[:token] = JSON.parse options[:token] unless options[:token].to_s.empty? options[:authorization_uri] ||= authorization_uri(options) options[:scope] ||= Array(scope) options[:token_credential_uri] ||= token_credentials_uri(options) options end