Documentation
¶
Index ¶
- Variables
- func GenerateRandomState() (string, error)
- func GetAuthErrorType(err error) string
- func GetPlatformName() string
- func GetUserFriendlyMessage(err error) string
- func IsBrowserAvailable() bool
- func IsRefreshFailed(err error) bool
- func IsTokenExpired(err error) bool
- func IsTokenInvalid(err error) bool
- func IsTokenRevoked(err error) bool
- func OpenBrowser(url string) error
- type AuthError
- type OAuthCallbackResult
- type PKCEChallenge
- type PKCEOAuthService
- type UserInfo
- type UserInfoService
Constants ¶
This section is empty.
Variables ¶
var ( ErrTokenExpired = errors.New("token has expired") ErrTokenRevoked = errors.New("token has been revoked") ErrTokenInvalid = errors.New("token is invalid") ErrTokenMalformed = errors.New("token is malformed") ErrRefreshFailed = errors.New("token refresh failed") ErrNotAuthenticated = errors.New("not authenticated") ErrAuthExpired = errors.New("authentication expired") )
Authentication error types
Functions ¶
func GenerateRandomState ¶
GenerateRandomState generates a random state parameter for CSRF protection
func GetAuthErrorType ¶ added in v0.2.9
GetAuthErrorType returns the type of authentication error
func GetPlatformName ¶
func GetPlatformName() string
GetPlatformName returns a human-readable platform name
func GetUserFriendlyMessage ¶ added in v0.2.9
GetUserFriendlyMessage returns a user-friendly error message
func IsBrowserAvailable ¶
func IsBrowserAvailable() bool
IsBrowserAvailable checks if a browser is available on the system
func IsRefreshFailed ¶ added in v0.2.9
IsRefreshFailed checks if the error indicates refresh failure
func IsTokenExpired ¶ added in v0.2.9
IsTokenExpired checks if the error indicates token expiration
func IsTokenInvalid ¶ added in v0.2.9
IsTokenInvalid checks if the error indicates an invalid token
func IsTokenRevoked ¶ added in v0.2.9
IsTokenRevoked checks if the error indicates token revocation
func OpenBrowser ¶
OpenBrowser opens the default browser to the specified URL
Types ¶
type AuthError ¶ added in v0.2.9
type AuthError struct {
Type string `json:"type"`
Message string `json:"message"`
Code int `json:"code,omitempty"`
Err error `json:"-"`
}
AuthError represents an authentication error with additional context
func NewAuthError ¶ added in v0.2.9
NewAuthError creates a new authentication error
type OAuthCallbackResult ¶
type OAuthCallbackResult struct {
Code string
Token string // Direct token if server returns it
Error error
}
OAuthCallbackResult represents the result of OAuth callback
type PKCEChallenge ¶
PKCEChallenge represents a PKCE code challenge and verifier pair
func GeneratePKCEChallenge ¶
func GeneratePKCEChallenge() (*PKCEChallenge, error)
GeneratePKCEChallenge creates a new PKCE challenge according to RFC 7636
func (*PKCEChallenge) Verify ¶
func (p *PKCEChallenge) Verify(verifier string) bool
Verify checks if the given verifier matches this challenge
type PKCEOAuthService ¶
type PKCEOAuthService struct {
// contains filtered or unexported fields
}
PKCEOAuthService handles OAuth2 authentication with PKCE
func NewPKCEOAuthService ¶
func NewPKCEOAuthService(cfg *config.Config) *PKCEOAuthService
NewPKCEOAuthService creates a new PKCE OAuth service
func (*PKCEOAuthService) GetAccessToken ¶
func (s *PKCEOAuthService) GetAccessToken() string
GetAccessToken returns the current access token
func (*PKCEOAuthService) IsAuthenticated ¶
func (s *PKCEOAuthService) IsAuthenticated() bool
IsAuthenticated checks if user is authenticated and attempts refresh if expired
type UserInfo ¶ added in v0.2.0
type UserInfo struct {
ID int `json:"id"` // Server returns number
UUID string `json:"uuid"` // Server returns UUID
Username string `json:"username"` // May not be in response
Email string `json:"email"`
Name string `json:"name"` // May not be in response
FirstName string `json:"first_name"` // Server field
LastName string `json:"last_name"` // Server field
Avatar string `json:"avatar"` // Server field
Verified bool `json:"email_verified"` // Server field (email_verified)
SubscriptionActive bool `json:"subscription_active"` // Server field
CreatedAt time.Time `json:"created_at"` // May not be in response
UpdatedAt time.Time `json:"updated_at"` // May not be in response
LastLoginAt time.Time `json:"last_login_at"` // May not be in response
Roles []string `json:"roles"` // May not be in response
Permissions []string `json:"permissions"` // May not be in response
}
UserInfo represents the user information returned by the OAuth userinfo endpoint
func (*UserInfo) FormatUserInfo ¶ added in v0.2.0
FormatUserInfo formats user information for display
func (*UserInfo) GetDisplayName ¶ added in v0.2.6
GetDisplayName returns the best available name for display
func (*UserInfo) GetFullName ¶ added in v0.2.6
GetFullName returns the full name from first and last name
func (*UserInfo) GetIDString ¶ added in v0.2.6
GetIDString returns the ID as a string for compatibility
type UserInfoService ¶ added in v0.2.0
type UserInfoService struct {
// contains filtered or unexported fields
}
UserInfoService handles OAuth userinfo API calls
func NewUserInfoService ¶ added in v0.2.0
func NewUserInfoService(cfg *config.Config) *UserInfoService
NewUserInfoService creates a new userinfo service
func (*UserInfoService) GetUserInfo ¶ added in v0.2.0
GetUserInfo fetches user information from the OAuth userinfo endpoint