authentication

package
v1.32.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2025 License: Apache-2.0 Imports: 10 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

Set provides the use-case of Authentication.

Functions

This section is empty.

Types

type Authentication

type Authentication struct {
	ClientFactory    client.FactoryInterface
	Logger           logger.Interface
	AuthCodeBrowser  *authcode.Browser
	AuthCodeKeyboard *authcode.Keyboard
	ROPC             *ropc.ROPC
	DeviceCode       *devicecode.DeviceCode
}

Authentication provides the internal use-case of authentication.

If the IDToken is not set, it performs the authentication flow. If the IDToken is valid, it does nothing. If the IDtoken has expired and the RefreshToken is set, it refreshes the token. If the RefreshToken has expired, it performs the authentication flow.

The authentication flow is determined as:

If the Username is not set, it performs the authorization code flow. Otherwise, it performs the resource owner password credentials flow. If the Password is not set, it asks a password by the prompt.

func (*Authentication) Do

func (u *Authentication) Do(ctx context.Context, in Input) (*Output, error)

type GrantOptionSet

type GrantOptionSet struct {
	AuthCodeBrowserOption  *authcode.BrowserOption
	AuthCodeKeyboardOption *authcode.KeyboardOption
	ROPCOption             *ropc.Option
	DeviceCodeOption       *devicecode.Option
}

type Input

type Input struct {
	Provider        oidc.Provider
	GrantOptionSet  GrantOptionSet
	CachedTokenSet  *oidc.TokenSet // optional
	TLSClientConfig tlsclientconfig.Config
}

Input represents an input DTO of the Authentication use-case.

type Interface

type Interface interface {
	Do(ctx context.Context, in Input) (*Output, error)
}

type Output

type Output struct {
	TokenSet oidc.TokenSet
}

Output represents an output DTO of the Authentication use-case.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL