authmw

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: May 24, 2026 License: MIT Imports: 3 Imported by: 1

Documentation

Overview

Package authmw provides route-level authentication/authorization middleware.

This package depends on server/router types, while the core auth package remains provider-agnostic and server-independent.

Index

Constants

This section is empty.

Variables

View Source
var RequireAuth router.Middleware = router.MiddlewareFunc(
	func(ctx server.Ctx, next func() error) error {
		if !auth.IsAuthenticated(ctx) {
			return auth.ErrUnauthorized
		}
		return next()
	},
)

RequireAuth is Vango middleware that requires authentication. Authentication is satisfied by either an authenticated user projection (ctx.User/auth.Set) or an authenticated principal projection (ctx.Principal/auth.SetPrincipal). Use on routes that should only be accessible to logged-in users.

Usage in file-based routing:

// app/routes/dashboard/middleware.go
func Middleware() []router.Middleware {
    return []router.Middleware{
        authmw.RequireAuth,
    }
}

Functions

func RequireAll

func RequireAll[T any](checks ...func(T) bool) router.Middleware

RequireAll returns middleware that requires all checks to pass.

Usage:

authmw.RequireAll(
    func(u *User) bool { return u.IsActive },
    func(u *User) bool { return u.EmailVerified },
)

func RequireAny

func RequireAny[T any](checks ...func(T) bool) router.Middleware

RequireAny returns middleware that requires at least one of the checks to pass.

Usage:

authmw.RequireAny(
    func(u *User) bool { return u.IsAdmin },
    func(u *User) bool { return u.IsOwner(resourceID) },
)

func RequirePermission

func RequirePermission[T any](check func(T) bool) router.Middleware

RequirePermission returns middleware that checks for a specific permission. This is semantically equivalent to RequireRole but communicates intent better for permission-based authorization.

Usage:

authmw.RequirePermission(func(u *models.User) bool {
    return u.Can("projects.delete")
})

func RequireRole

func RequireRole[T any](check func(T) bool) router.Middleware

RequireRole returns middleware that requires a specific role. The check function receives the user and returns true if authorized.

Usage:

func Middleware() []router.Middleware {
    return []router.Middleware{
        authmw.RequireRole(func(u *models.User) bool {
            return u.Role == "admin"
        }),
    }
}

Types

This section is empty.

Jump to

Keyboard shortcuts

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