Class: Signet::OAuth2::Client
- Inherits:
-
Object
- Object
- Signet::OAuth2::Client
- Includes:
- Google::Auth::BaseClient
- Defined in:
- lib/googleauth/signet.rb
Overview
Signet::OAuth2::Client creates an OAuth2 client
This reopens Client to add #apply and #apply! methods which update a hash with the fetched authentication token.
Direct Known Subclasses
Google::Auth::GCECredentials, Google::Auth::ServiceAccountCredentials, Google::Auth::UserRefreshCredentials
Constant Summary
Constants included from Google::Auth::BaseClient
Google::Auth::BaseClient::AUTH_METADATA_KEY
Instance Attribute Summary collapse
-
#universe_domain ⇒ Object
Set the universe domain.
Instance Method Summary collapse
- #build_default_connection ⇒ Object
- #configure_connection(options) ⇒ Object
- #fetch_access_token!(options = {}) ⇒ Object
- #orig_fetch_access_token! ⇒ Object
- #retry_with_error(max_retry_count = 5) ⇒ Object
-
#token_type ⇒ Object
The token type as symbol, either :id_token or :access_token.
- #update_token!(options = {}) ⇒ Object
- #update_token_signet_base ⇒ Object
Methods included from Google::Auth::BaseClient
#apply, #apply!, #expires_within?, #needs_access_token?, #notify_refresh_listeners, #on_refresh, #updater_proc
Instance Attribute Details
#universe_domain ⇒ Object
Set the universe domain
53 54 55 |
# File 'lib/googleauth/signet.rb', line 53 def universe_domain @universe_domain end |
Instance Method Details
#build_default_connection ⇒ Object
68 69 70 71 72 73 74 75 76 |
# File 'lib/googleauth/signet.rb', line 68 def build_default_connection if !defined?(@connection_info) nil elsif @connection_info.respond_to? :call @connection_info.call else @connection_info end end |
#configure_connection(options) ⇒ Object
41 42 43 44 45 |
# File 'lib/googleauth/signet.rb', line 41 def configure_connection @connection_info = [:connection_builder] || [:default_connection] self end |
#fetch_access_token!(options = {}) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/googleauth/signet.rb', line 56 def fetch_access_token! = {} unless [:connection] connection = build_default_connection = .merge connection: connection if connection end info = retry_with_error do orig_fetch_access_token! end notify_refresh_listeners info end |
#orig_fetch_access_token! ⇒ Object
55 |
# File 'lib/googleauth/signet.rb', line 55 alias orig_fetch_access_token! fetch_access_token! |
#retry_with_error(max_retry_count = 5) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/googleauth/signet.rb', line 78 def retry_with_error max_retry_count = 5 retry_count = 0 begin yield rescue StandardError => e raise e if e.is_a?(Signet::AuthorizationError) || e.is_a?(Signet::ParseError) if retry_count < max_retry_count retry_count += 1 sleep retry_count * 0.3 retry else msg = "Unexpected error: #{e.inspect}" raise Signet::AuthorizationError, msg end end end |
#token_type ⇒ Object
The token type as symbol, either :id_token or :access_token
48 49 50 |
# File 'lib/googleauth/signet.rb', line 48 def token_type target_audience ? :id_token : :access_token end |
#update_token!(options = {}) ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/googleauth/signet.rb', line 32 def update_token! = {} = deep_hash_normalize id_token_expires_at = expires_at_from_id_token [:id_token] [:expires_at] = id_token_expires_at if id_token_expires_at update_token_signet_base self.universe_domain = [:universe_domain] if .key? :universe_domain self end |
#update_token_signet_base ⇒ Object
30 |
# File 'lib/googleauth/signet.rb', line 30 alias update_token_signet_base update_token! |