Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateRandomState ¶
GenerateRandomState generates a random state parameter for CSRF protection
func GetPlatformName ¶
func GetPlatformName() string
GetPlatformName returns a human-readable platform name
func IsBrowserAvailable ¶
func IsBrowserAvailable() bool
IsBrowserAvailable checks if a browser is available on the system
func OpenBrowser ¶
OpenBrowser opens the default browser to the specified URL
Types ¶
type OAuthCallbackResult ¶
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
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