auth

package
v0.1.37 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2026 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TokenTypePrequel = "prequel-token"
	TokenTypeId      = "oidc-id-token"
)

Variables

View Source
var (
	ErrInvalidDeviceAuth  = errors.New("invalid device auth")
	ErrFailedToGetToken   = errors.New("failed to get token")
	ErrInvalidToken       = errors.New("invalid token")
	ErrInvalidTokenClaims = errors.New("invalid token claims")
	ErrInvalidJson        = errors.New("invalid JSON")
	ErrEmailNotVerified   = errors.New("email not verified")
	ErrAuthFailure        = errors.New("auth failure")
)

Functions

func EmailClaim

func EmailClaim(idToken string) (string, error)

func Login

func Login(ctx context.Context, baseAddr, tokenPath string) (string, error)

Types

type DeviceAuth

type DeviceAuth struct {
	DeviceCode              string `json:"device_code"`
	UserCode                string `json:"user_code"`
	VerificationUrl         string `json:"verification_url"`
	VerificationUri         string `json:"verification_uri"`
	VerificationUriComplete string `json:"verification_uri_complete"`
	ExpiresIn               int    `json:"expires_in"`
	Interval                int    `json:"interval"`
}

type Token

type Token struct {
	Token string `json:"token"`
	Type  string `json:"type"`
}

type TokenExchangeRequest

type TokenExchangeRequest struct {
	AccessToken string `json:"access_token" binding:"required"`
	IdToken     string `json:"id_token" binding:"required"`
	OrgUuid     string `json:"org_uuid" binding:"required"`
}

type TokenPollRequest

type TokenPollRequest struct {
	Username   string `json:"username" binding:"required,min=1,max=128"`
	DeviceCode string `json:"device_code" binding:"required,min=1,max=64"`
	OrgUuid    string `json:"org_uuid" binding:"required,min=1,max=64"`
}

type TokenPollResponse

type TokenPollResponse struct {
	Error            string `json:"error"`
	ErrorDescription string `json:"error_description"`
	TokenType        string `json:"token_type"`
	AccessToken      string `json:"access_token"`
	ExpiresIn        int    `json:"expires_in"`
	Scope            string `json:"scope"`
	IdToken          string `json:"id_token"`
	RefreshToken     string `json:"refresh_token"`
	OrgUuid          string `json:"org_uuid"`
}

type UserClaims

type UserClaims struct {
	jwt.StandardClaims
	Name          string `json:"name" binding:"min=1,max=50"`
	Email         string `json:"email" binding:"min=1,max=50"`
	Sub           string `json:"sub" binding:"min=1,max=50"`
	Role          string `json:"role" binding:"min=1,max=50"`
	Org           string `json:"org" binding:"min=1,max=50"`
	Type          string `json:"type" binding:"min=1,max=50"`
	Domain        string `json:"domain" binding:"min=1,max=50"`
	EmailVerified bool   `json:"email_verified"`
}

Jump to

Keyboard shortcuts

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