class Zaikio::OAuthClient::ClientConfiguration
Attributes
client_id[RW]
client_name[R]
client_secret[RW]
default_scopes[RW]
org_config[R]
Public Class Methods
new(client_name)
click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 7 def initialize(client_name) @default_scopes = [] @client_name = client_name end
Public Instance Methods
default_scopes_for(type = "Person")
click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 36 def default_scopes_for(type = "Person") type == "Organization" ? org_config.default_scopes : default_scopes end
oauth_client()
click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 17 def oauth_client @oauth_client ||= OAuth2::Client.new( client_id, client_secret, authorize_url: "oauth/authorize", token_url: "oauth/access_token", connection_opts: { headers: { Accept: "application/json" } }, site: Zaikio::OAuthClient.configuration.host ) @oauth_client.options[:auth_scheme] = Zaikio::OAuthClient.oauth_scheme @oauth_client end
register_organization_connection() { |org_config| ... }
click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 12 def register_organization_connection @org_config ||= OrganizationConnection.new yield(@org_config) end
scopes_for_auth(_id = nil)
click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 32 def scopes_for_auth(_id = nil) default_scopes end
token_by_client_credentials(bearer_id: nil, bearer_type: "Person", scopes: [])
click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 40 def token_by_client_credentials(bearer_id: nil, bearer_type: "Person", scopes: []) plain_scopes = Zaikio::OAuthClient.get_plain_scopes(scopes) scopes_with_prefix = plain_scopes.map do |scope| "#{bearer_type[0..2]}/#{bearer_id}.#{scope}" end Zaikio::OAuthClient.with_oauth_scheme(:basic_auth) do oauth_client.client_credentials.get_token(scope: scopes_with_prefix.join(",")) end end