Class: Zitadel::Client::Auth::ClientCredentialsAuthenticator

Inherits:
OAuthAuthenticator show all
Defined in:
lib/zitadel/client/auth/client_credentials_authenticator.rb

Overview

ClientCredentialsAuthenticator implements the client credentials flow.

Defined Under Namespace

Classes: ClientCredentialsAuthenticatorBuilder

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(open_id, client_id, client_secret, auth_scopes, transport_options: nil) ⇒ ClientCredentialsAuthenticator

Constructs a ClientCredentialsAuthenticator using client credentials flow.

Parameters:

  • open_id (OpenId)

    The OpenId instance with OAuth endpoint info.

  • client_id (String)

    The OAuth client identifier.

  • client_secret (String)

    The OAuth client secret.

  • auth_scopes (Set<String>)

    The scope(s) for the token request.

  • transport_options (TransportOptions, nil) (defaults to: nil)

    Optional transport options for TLS, proxy, and headers.



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/zitadel/client/auth/client_credentials_authenticator.rb', line 15

def initialize(open_id, client_id, client_secret, auth_scopes, transport_options: nil)
  transport_options ||= TransportOptions.defaults

  conn_opts = transport_options.to_connection_opts

  # noinspection RubyArgCount
  super(open_id, auth_scopes, OAuth2::Client.new(client_id, client_secret, {
                                                   site: open_id.host_endpoint,
                                                   token_url: open_id.token_endpoint,
                                                   connection_opts: conn_opts
                                                 }), transport_options: transport_options)
end

Class Method Details

.builder(host, client_id, client_secret, transport_options: nil) ⇒ ClientCredentialsAuthenticatorBuilder

Returns a new builder for constructing a ClientCredentialsAuthenticator.

Parameters:

  • host (String)

    The OAuth provider’s base URL.

  • client_id (String)

    The OAuth client identifier.

  • client_secret (String)

    The OAuth client secret.

  • transport_options (TransportOptions, nil) (defaults to: nil)

    Optional transport options for TLS, proxy, and headers.

Returns:



35
36
37
38
# File 'lib/zitadel/client/auth/client_credentials_authenticator.rb', line 35

def self.builder(host, client_id, client_secret, transport_options: nil)
  ClientCredentialsAuthenticatorBuilder.new(host, client_id, client_secret,
                                            transport_options: transport_options)
end