urlx

package
v1.20.0 Latest Latest
Warning

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

Go to latest
Published: May 5, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package urlx provides URL token construction and shortening utilities for embedding signed tokens in email action links

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrTokenCreationFailed indicates that the token pair could not be created
	ErrTokenCreationFailed = errors.New("urlx: token creation failed")
	// ErrURLConstructionFailed indicates that the URL could not be constructed
	ErrURLConstructionFailed = errors.New("urlx: URL construction failed")
)

Functions

func BuildTokenURL

func BuildTokenURL(ctx context.Context, sl *shortlinks.Client, baseURL url.URL, token string) (string, error)

BuildTokenURL appends a token query parameter to the base URL and optionally shortens the result via the shortlinks client. If sl is nil or shortening fails, the full-length URL is returned (graceful degradation)

Types

type AnonTokenRequest

type AnonTokenRequest struct {
	// Prefix is prepended to SubjectID to form the JWT subject (e.g. "anon-tc-")
	Prefix string
	// SubjectID is the domain-specific identifier (e.g. request ID, ULID)
	SubjectID string
	// OrgID is the organization the token is scoped to
	OrgID string
	// Email is the recipient email address embedded in the token
	Email string
	// Duration is the access token lifetime
	Duration time.Duration
	// ExtraClaims is an optional callback to set domain-specific claim fields
	// (e.g. AssessmentID, TrustCenterID) on the token before signing
	ExtraClaims func(*tokens.Claims)
}

AnonTokenRequest holds the parameters for generating an anonymous JWT and embedding it in a URL

type AnonTokenResult

type AnonTokenResult struct {
	// AccessToken is the signed JWT string
	AccessToken string
	// URL is the full URL with the token embedded as a query parameter
	URL string
}

AnonTokenResult holds the generated access token and the final URL containing it

func GenerateAnonTokenURL

func GenerateAnonTokenURL(ctx context.Context, tm *tokens.TokenManager, sl *shortlinks.Client, baseURL url.URL, req AnonTokenRequest) (*AnonTokenResult, error)

GenerateAnonTokenURL creates a short-lived anonymous JWT from the request parameters, appends it to baseURL as a query parameter, and optionally shortens the result

Jump to

Keyboard shortcuts

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