auth

package
v0.5.3 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const JWTSigningKeyID = "jwt_signing_key"

Variables

View Source
var (
	ErrNotFound = errors.New("key not found")
	ErrDB       = errors.New("database error")
)

Functions

This section is empty.

Types

type Auth0Provider added in v0.5.0

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

func NewAuth0Provider added in v0.5.0

func NewAuth0Provider(cfg *config.Config, userService user.Service, authService Service, teamService *team.Service) *Auth0Provider

func (*Auth0Provider) GetAuthURL added in v0.5.0

func (p *Auth0Provider) GetAuthURL(state string) string

func (*Auth0Provider) HandleCallback added in v0.5.0

func (p *Auth0Provider) HandleCallback(ctx context.Context, code string) (*user.User, error)

func (*Auth0Provider) Name added in v0.5.0

func (p *Auth0Provider) Name() string

func (*Auth0Provider) Type added in v0.5.0

func (p *Auth0Provider) Type() string

type Claims

type Claims struct {
	Roles       []string               `json:"roles"`
	Permissions []string               `json:"permissions"`
	Preferences map[string]interface{} `json:"preferences,omitempty"`
	jwt.RegisteredClaims
}

type GitHubProvider added in v0.5.0

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

func NewGitHubProvider added in v0.5.0

func NewGitHubProvider(cfg *config.Config, userService user.Service) *GitHubProvider

func (*GitHubProvider) GetAuthURL added in v0.5.0

func (p *GitHubProvider) GetAuthURL(state string) string

func (*GitHubProvider) HandleCallback added in v0.5.0

func (p *GitHubProvider) HandleCallback(ctx context.Context, code string) (*user.User, error)

func (*GitHubProvider) Name added in v0.5.0

func (p *GitHubProvider) Name() string

func (*GitHubProvider) Type added in v0.5.0

func (p *GitHubProvider) Type() string

type GitLabProvider added in v0.5.0

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

func NewGitLabProvider added in v0.5.0

func NewGitLabProvider(cfg *config.Config, userService user.Service) *GitLabProvider

func (*GitLabProvider) GetAuthURL added in v0.5.0

func (p *GitLabProvider) GetAuthURL(state string) string

func (*GitLabProvider) HandleCallback added in v0.5.0

func (p *GitLabProvider) HandleCallback(ctx context.Context, code string) (*user.User, error)

func (*GitLabProvider) Name added in v0.5.0

func (p *GitLabProvider) Name() string

func (*GitLabProvider) Type added in v0.5.0

func (p *GitLabProvider) Type() string

type GoogleProvider added in v0.5.0

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

func NewGoogleProvider added in v0.5.0

func NewGoogleProvider(cfg *config.Config, userService user.Service) *GoogleProvider

func (*GoogleProvider) GetAuthURL added in v0.5.0

func (p *GoogleProvider) GetAuthURL(state string) string

func (*GoogleProvider) HandleCallback added in v0.5.0

func (p *GoogleProvider) HandleCallback(ctx context.Context, code string) (*user.User, error)

func (*GoogleProvider) Name added in v0.5.0

func (p *GoogleProvider) Name() string

func (*GoogleProvider) Type added in v0.5.0

func (p *GoogleProvider) Type() string

type OAuthManager

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

func NewOAuthManager

func NewOAuthManager() *OAuthManager

func (*OAuthManager) GetProvider

func (m *OAuthManager) GetProvider(providerType string) (OAuthProvider, bool)

func (*OAuthManager) GetProviderNames added in v0.5.0

func (m *OAuthManager) GetProviderNames() []string

func (*OAuthManager) RegisterProvider

func (m *OAuthManager) RegisterProvider(provider OAuthProvider)

type OAuthProvider

type OAuthProvider interface {
	GetAuthURL(state string) string
	HandleCallback(ctx context.Context, code string) (*user.User, error)
	Name() string
	Type() string
}

type OktaProvider

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

OktaProvider represents the OAuth provider for Okta.

func NewOktaProvider

func NewOktaProvider(cfg *config.Config, userService user.Service, authService Service, teamService *team.Service) *OktaProvider

NewOktaProvider creates a new OktaProvider.

func (*OktaProvider) GetAuthURL

func (p *OktaProvider) GetAuthURL(state string) string

func (*OktaProvider) HandleCallback

func (p *OktaProvider) HandleCallback(ctx context.Context, code string) (*user.User, error)

func (*OktaProvider) Name

func (p *OktaProvider) Name() string

Name returns the name of the provider.

func (*OktaProvider) Type

func (p *OktaProvider) Type() string

Type returns the type of the provider.

type Repository

type Repository interface {
	GetSigningKey(ctx context.Context, key string) (string, error)
	StoreSigningKey(ctx context.Context, key, value string) error
}

func NewPostgresRepository

func NewPostgresRepository(db *pgxpool.Pool) Repository

type Service

type Service interface {
	GenerateToken(ctx context.Context, user *user.User, preferencesClaims map[string]interface{}) (string, error)
	ValidateToken(ctx context.Context, tokenString string) (*Claims, error)
	GetSigningKey(ctx context.Context) ([]byte, error)
}

func NewService

func NewService(repo Repository, userService user.Service) Service

type SlackProvider added in v0.5.0

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

func NewSlackProvider added in v0.5.0

func NewSlackProvider(cfg *config.Config, userService user.Service) *SlackProvider

func (*SlackProvider) GetAuthURL added in v0.5.0

func (p *SlackProvider) GetAuthURL(state string) string

func (*SlackProvider) HandleCallback added in v0.5.0

func (p *SlackProvider) HandleCallback(ctx context.Context, code string) (*user.User, error)

func (*SlackProvider) Name added in v0.5.0

func (p *SlackProvider) Name() string

func (*SlackProvider) Type added in v0.5.0

func (p *SlackProvider) Type() string

Jump to

Keyboard shortcuts

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