auth

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AsProvider

func AsProvider(provider any) any

func InjectUser added in v0.4.0

func InjectUser(ctx context.Context, user *ResolvedUser) context.Context

func Module

func Module() module.Module

Types

type Middleware

type Middleware struct {
	// contains filtered or unexported fields
}

func NewMiddleware

func NewMiddleware(params MiddlewareParams) *Middleware

func (*Middleware) Middleware

func (m *Middleware) Middleware(ctx huma.Context, next func(ctx huma.Context))

type MiddlewareParams

type MiddlewareParams struct {
	fx.In
	API       huma.API
	Providers *Providers
}

type Provider

type Provider interface {
	SecurityScheme() *huma.SecurityScheme
	UserResolver(ctx huma.Context) (*ResolvedUser, error)
	AuthMiddleware(ctx huma.Context, next func(ctx huma.Context))
}

type Providers

type Providers struct {
	Registry map[string]Provider
}

func NewProviders

func NewProviders(params ProvidersParams) *Providers

func (*Providers) HydrateOas3

func (p *Providers) HydrateOas3(doc *huma.OpenAPI)

type ProvidersParams

type ProvidersParams struct {
	fx.In
	Providers []Provider `group:"auth.provider"`
}

type ResolvedUser

type ResolvedUser struct {
	ProviderName    string
	ProviderId      string
	Username        string
	Firstname       string
	Lastname        string
	Email           string
	IsEmailVerified bool
	Avatar          string
	IsAdmin         bool
}

func UserFromContext added in v0.4.0

func UserFromContext(ctx context.Context) *ResolvedUser

func (*ResolvedUser) ProviderUUID added in v0.4.0

func (r *ResolvedUser) ProviderUUID() uuid.UUID

func (*ResolvedUser) Resolve

func (r *ResolvedUser) Resolve(ctx huma.Context) []error

Jump to

Keyboard shortcuts

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