auth

package
v0.9.10 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2025 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OIDCMiddlewareCallbackPath = "/auth/callback"
	OIDCLogoutPath             = "/auth/logout"
)
View Source
const CookieOauthState = "godoxy_oidc_state"

Variables

View Source
var (
	ErrInvalidUsername = E.New("invalid username")
	ErrInvalidPassword = E.New("invalid password")
)
View Source
var (
	ErrMissingToken   = E.New("missing token")
	ErrInvalidToken   = E.New("invalid token")
	ErrUserNotAllowed = E.New("user not allowed")
)

Functions

func DefaultLogoutCallbackHandler

func DefaultLogoutCallbackHandler(auth Provider, w http.ResponseWriter, r *http.Request)

DefaultLogoutCallbackHandler clears the token cookie and redirects to the login page..

func Initialize

func Initialize() error

Initialize sets up authentication providers.

func IsEnabled

func IsEnabled() bool

func IsOIDCEnabled

func IsOIDCEnabled() bool

func RequireAuth

func RequireAuth(next http.HandlerFunc) http.HandlerFunc

Types

type OIDCProvider

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

func NewOIDCProvider

func NewOIDCProvider(issuerURL, clientID, clientSecret, redirectURL, logoutURL string, allowedUsers, allowedGroups []string) (*OIDCProvider, error)

func NewOIDCProviderFromEnv

func NewOIDCProviderFromEnv() (*OIDCProvider, error)

NewOIDCProviderFromEnv creates a new OIDCProvider from environment variables.

func (*OIDCProvider) CheckToken

func (auth *OIDCProvider) CheckToken(r *http.Request) error

func (*OIDCProvider) LoginCallbackHandler

func (auth *OIDCProvider) LoginCallbackHandler(w http.ResponseWriter, r *http.Request)

OIDCCallbackHandler handles the OIDC callback.

func (*OIDCProvider) LogoutCallbackHandler

func (auth *OIDCProvider) LogoutCallbackHandler(w http.ResponseWriter, r *http.Request)

func (*OIDCProvider) RedirectLoginPage

func (auth *OIDCProvider) RedirectLoginPage(w http.ResponseWriter, r *http.Request)

RedirectOIDC initiates the OIDC login flow.

func (*OIDCProvider) SetAllowedGroups

func (auth *OIDCProvider) SetAllowedGroups(groups []string)

func (*OIDCProvider) SetAllowedUsers

func (auth *OIDCProvider) SetAllowedUsers(users []string)

func (*OIDCProvider) SetIsMiddleware

func (auth *OIDCProvider) SetIsMiddleware(enabled bool)

func (*OIDCProvider) TokenCookieName

func (auth *OIDCProvider) TokenCookieName() string

type Provider

type Provider interface {
	TokenCookieName() string
	CheckToken(r *http.Request) error
	RedirectLoginPage(w http.ResponseWriter, r *http.Request)
	LoginCallbackHandler(w http.ResponseWriter, r *http.Request)
	LogoutCallbackHandler(w http.ResponseWriter, r *http.Request)
}

func GetDefaultAuth

func GetDefaultAuth() Provider

type UserPassAuth

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

func NewUserPassAuth

func NewUserPassAuth(username, password string, secret []byte, tokenTTL time.Duration) (*UserPassAuth, error)

func NewUserPassAuthFromEnv

func NewUserPassAuthFromEnv() (*UserPassAuth, error)

func (*UserPassAuth) CheckToken

func (auth *UserPassAuth) CheckToken(r *http.Request) error

func (*UserPassAuth) LoginCallbackHandler

func (auth *UserPassAuth) LoginCallbackHandler(w http.ResponseWriter, r *http.Request)

func (*UserPassAuth) LogoutCallbackHandler

func (auth *UserPassAuth) LogoutCallbackHandler(w http.ResponseWriter, r *http.Request)

func (*UserPassAuth) NewToken

func (auth *UserPassAuth) NewToken() (token string, err error)

func (*UserPassAuth) RedirectLoginPage

func (auth *UserPassAuth) RedirectLoginPage(w http.ResponseWriter, r *http.Request)

func (*UserPassAuth) TokenCookieName

func (auth *UserPassAuth) TokenCookieName() string

type UserPassClaims

type UserPassClaims struct {
	Username string `json:"username"`
	jwt.RegisteredClaims
}

Jump to

Keyboard shortcuts

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