Class: MultiAuthSample::OAuthACG
- Inherits:
-
CoreLibrary::HeaderAuth
- Object
- CoreLibrary::HeaderAuth
- MultiAuthSample::OAuthACG
- Defined in:
- lib/multi_auth_sample/http/auth/o_auth_acg.rb
Overview
Utility class for OAuth 2 authorization and token management.
Instance Method Summary collapse
-
#build_basic_auth_header ⇒ String
Builds the basic auth header for endpoints in the OAuth Authorization Controller.
-
#error_message ⇒ Object
Display error message on occurrence of authentication failure.
-
#fetch_token(auth_code, additional_params: nil) ⇒ OAuthToken
Fetches the token.
-
#get_authorization_url(state: nil, additional_params: nil) ⇒ String
Builds and returns an authorization URL.
-
#initialize(o_auth_acg_credentials, config) ⇒ OAuthACG
constructor
Initialization constructor.
-
#refresh_token(additional_params: nil) ⇒ OAuthToken
Refreshes OAuth token.
-
#token_expired?(token) ⇒ Boolean
Checks if OAuth token has expired.
-
#valid ⇒ Boolean
Validates the oAuth token.
Constructor Details
#initialize(o_auth_acg_credentials, config) ⇒ OAuthACG
Initialization constructor.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/multi_auth_sample/http/auth/o_auth_acg.rb', line 16 def initialize(o_auth_acg_credentials, config) auth_params = {} @_o_auth_client_id = o_auth_acg_credentials.o_auth_client_id unless o_auth_acg_credentials.nil? || o_auth_acg_credentials.o_auth_client_id.nil? @_o_auth_client_secret = o_auth_acg_credentials.o_auth_client_secret unless o_auth_acg_credentials.nil? || o_auth_acg_credentials.o_auth_client_secret.nil? @_o_auth_redirect_uri = o_auth_acg_credentials.o_auth_redirect_uri unless o_auth_acg_credentials.nil? || o_auth_acg_credentials.o_auth_redirect_uri.nil? @_o_auth_token = o_auth_acg_credentials.o_auth_token unless o_auth_acg_credentials.nil? || o_auth_acg_credentials.o_auth_token.nil? @_o_auth_scopes = o_auth_acg_credentials.o_auth_scopes unless o_auth_acg_credentials.nil? || o_auth_acg_credentials.o_auth_scopes.nil? @_config = config @_o_auth_api = OAuthAuthorizationController.new(config) auth_params['Authorization'] = "Bearer #{@_o_auth_token.access_token}" unless @_o_auth_token.nil? super auth_params end |
Instance Method Details
#build_basic_auth_header ⇒ String
Builds the basic auth header for endpoints in the OAuth Authorization Controller.
65 66 67 |
# File 'lib/multi_auth_sample/http/auth/o_auth_acg.rb', line 65 def build_basic_auth_header "Basic #{AuthHelper.get_base64_encoded_value(@_o_auth_client_id, @_o_auth_client_secret)}" end |
#error_message ⇒ Object
Display error message on occurrence of authentication failure.
11 12 13 |
# File 'lib/multi_auth_sample/http/auth/o_auth_acg.rb', line 11 def 'OAuthACG: OAuthToken is undefined or expired.' end |
#fetch_token(auth_code, additional_params: nil) ⇒ OAuthToken
Fetches the token.
73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/multi_auth_sample/http/auth/o_auth_acg.rb', line 73 def fetch_token(auth_code, additional_params: nil) token = @_o_auth_api.request_token_o_auth_acg( build_basic_auth_header, auth_code, @_o_auth_redirect_uri, _field_parameters: additional_params ) if token.respond_to?('expires_in') && !token.expires_in.nil? token.expiry = AuthHelper.get_token_expiry(token.expires_in, Time.now.utc.to_i) end token end |
#get_authorization_url(state: nil, additional_params: nil) ⇒ String
Builds and returns an authorization URL. The user is expected to obtain an authorization code from this URL and then call the fetch token function with that authorization code.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/multi_auth_sample/http/auth/o_auth_acg.rb', line 47 def (state: nil, additional_params: nil) auth_url = @_config.get_base_uri auth_url += '/oauth/authorize' query_params = { 'response_type' => 'code', 'client_id' => @_o_auth_client_id, 'redirect_uri' => @_o_auth_client_id } query_params['scope'] = Array(@_o_auth_scopes).compact.join(' ') if @_o_auth_scopes query_params['state'] = state if state query_params.merge!(additional_params) if additional_params auth_url = APIHelper.append_url_with_query_parameters(auth_url, query_params) APIHelper.clean_url(auth_url) end |
#refresh_token(additional_params: nil) ⇒ OAuthToken
Refreshes OAuth token.
96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/multi_auth_sample/http/auth/o_auth_acg.rb', line 96 def refresh_token(additional_params: nil) token = @_o_auth_api.refresh_token_o_auth_acg( OAuthACG.build_basic_auth_header, @_o_auth_token.refresh_token, scope: !@_o_auth_scopes.nil? ? Array(@_o_auth_scopes).compact.join(' ') : nil, _field_parameters: additional_params ) if token.respond_to?('expires_in') && !token.expires_in.nil? token.expiry = AuthHelper.get_token_expiry(token.expires_in, Time.now.utc.to_i) end token end |
#token_expired?(token) ⇒ Boolean
Checks if OAuth token has expired.
89 90 91 |
# File 'lib/multi_auth_sample/http/auth/o_auth_acg.rb', line 89 def token_expired?(token) token.respond_to?('expiry') && AuthHelper.token_expired?(token.expiry) end |
#valid ⇒ Boolean
Validates the oAuth token.
37 38 39 |
# File 'lib/multi_auth_sample/http/auth/o_auth_acg.rb', line 37 def valid !@_o_auth_token.nil? && !token_expired?(@_o_auth_token) end |