Help us shape the future of Go! Take the 2026 Go Developer Survey

authutil

package
v1.39.0 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildLoginURL

func BuildLoginURL(domain, clientID, callbackURL, state, connectionName, audience, prompt string, scopes []string, customParams map[string]string) (string, error)

BuildLoginURL constructs a URL + query string that can be used to initiate a user-facing login-flow from the CLI.

func WaitForBrowserCallback

func WaitForBrowserCallback(ctx context.Context, addr string) (code string, state string, err error)

WaitForBrowserCallback launches a new HTTP server listening on the provided address and waits for a request. Once received, the code is extracted from the query string (if any), and returned to the caller. The wait is bounded: it aborts if ctx is cancelled or browserCallbackTimeout elapses first, so a non-interactive caller never hangs indefinitely.

Types

type TokenResponse

type TokenResponse struct {
	AccessToken  string `json:"access_token,omitempty"`
	RefreshToken string `json:"refresh_token,omitempty"`
	IDToken      string `json:"id_token,omitempty"`
	TokenType    string `json:"token_type,omitempty"`
	ExpiresIn    int64  `json:"expires_in,omitempty"`
}

TokenResponse stores token information as retrieved from the /oauth/token endpoint when exchanging a code.

func ExchangeCodeForToken

func ExchangeCodeForToken(httpClient *http.Client, baseDomain, clientID, clientSecret, code, cbURL string) (*TokenResponse, error)

ExchangeCodeForToken fetches an access token for the given application using the provided code.

type UserInfo

type UserInfo struct {
	Sub               *string    `json:"sub,omitempty"`
	Name              *string    `json:"name,omitempty"`
	GivenName         *string    `json:"given_name,omitempty"`
	MiddleName        *string    `json:"middle_name,omitempty"`
	FamilyName        *string    `json:"family_name,omitempty"`
	Nickname          *string    `json:"nickname,omitempty"`
	PreferredUsername *string    `json:"preferred_username,omitempty"`
	Profile           *string    `json:"profile,omitempty"`
	Picture           *string    `json:"picture,omitempty"`
	Website           *string    `json:"website,omitempty"`
	PhoneNumber       *string    `json:"phone_number,omitempty"`
	PhoneVerified     *bool      `json:"phone_verified,omitempty"`
	Email             *string    `json:"email,omitempty"`
	EmailVerified     *bool      `json:"email_verified,omitempty"`
	Gender            *string    `json:"gender,omitempty"`
	BirthDate         *string    `json:"birthdate,omitempty"`
	ZoneInfo          *string    `json:"zoneinfo,omitempty"`
	Locale            *string    `json:"locale,omitempty"`
	UpdatedAt         *time.Time `json:"updated_at,omitempty"`
}

UserInfo contains profile information for a given OIDC user.

func FetchUserInfo

func FetchUserInfo(httpClient *http.Client, baseDomain, token string) (*UserInfo, error)

FetchUserInfo fetches and parses user information with the provided access token.

func (*UserInfo) UnmarshalJSON added in v1.1.1

func (u *UserInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON is a custom deserializer for the UserInfo type. A custom solution is necessary due to possible inconsistencies in value types.

Jump to

Keyboard shortcuts

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