authutil

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2024 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) (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(addr string) (code string, state string, err error)

WaitForBrowserCallback lauches 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 it to the caller.

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