Documentation
¶
Index ¶
- type Account
- type AccountDatabaseHooksConfig
- type ChangeEmailConfig
- type Config
- type ConfigOption
- func WithAppName(name string) ConfigOption
- func WithBasePath(path string) ConfigOption
- func WithBaseURL(url string) ConfigOption
- func WithDatabase(db DatabaseConfig) ConfigOption
- func WithDatabaseHooks(databaseHooksConfig DatabaseHooksConfig) ConfigOption
- func WithEmailPassword(config EmailPasswordConfig) ConfigOption
- func WithEmailVerification(config EmailVerificationConfig) ConfigOption
- func WithHooks(hooksConfig HooksConfig) ConfigOption
- func WithSecret(secret string) ConfigOption
- func WithSession(sessionConfig SessionConfig) ConfigOption
- func WithTrustedOrigins(trustedOriginsConfig TrustedOriginsConfig) ConfigOption
- func WithUser(userConfig UserConfig) ConfigOption
- type DatabaseConfig
- type DatabaseHooksConfig
- type EmailPasswordConfig
- type EmailVerificationConfig
- type HooksConfig
- type PasswordConfig
- type ProviderType
- type Session
- type SessionConfig
- type SessionDatabaseHooksConfig
- type TrustedOriginsConfig
- type User
- type UserConfig
- type UserDatabaseHooksConfig
- type Verification
- type VerificationDatabaseHooksConfig
- type VerificationType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Account ¶
type Account struct {
ID string `json:"id" gorm:"primaryKey"`
UserID string `json:"user_id" gorm:"index"`
AccountID string `json:"account_id"`
ProviderID ProviderType `json:"provider_id"`
AccessToken *string `json:"access_token,omitempty"`
RefreshToken *string `json:"refresh_token,omitempty"`
IDToken *string `json:"id_token,omitempty"`
AccessTokenExpiresAt *time.Time `json:"access_token_expires_at,omitempty"`
RefreshTokenExpiresAt *time.Time `json:"refresh_token_expires_at,omitempty"`
Scope *string `json:"scope,omitempty"`
Password *string `json:"password,omitempty"` // for email/password auth
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
User User `gorm:"foreignKey:UserID"`
}
type ChangeEmailConfig ¶
type Config ¶
type Config struct {
AppName string
BaseURL string
BasePath string
Secret string
Database DatabaseConfig
EmailPassword EmailPasswordConfig
EmailVerification EmailVerificationConfig
User UserConfig
Session SessionConfig
TrustedOrigins TrustedOriginsConfig
DatabaseHooks DatabaseHooksConfig
Hooks HooksConfig
}
Config holds all configurable options for the GoBetterAuth library.
func NewConfig ¶
func NewConfig(opts ...ConfigOption) *Config
NewConfig builds a Config using functional options with sensible defaults.
type ConfigOption ¶ added in v1.0.1
type ConfigOption func(*Config)
func WithAppName ¶ added in v1.0.1
func WithAppName(name string) ConfigOption
func WithBasePath ¶ added in v1.0.1
func WithBasePath(path string) ConfigOption
func WithBaseURL ¶ added in v1.0.1
func WithBaseURL(url string) ConfigOption
func WithDatabase ¶ added in v1.0.1
func WithDatabase(db DatabaseConfig) ConfigOption
func WithDatabaseHooks ¶ added in v1.0.1
func WithDatabaseHooks(databaseHooksConfig DatabaseHooksConfig) ConfigOption
func WithEmailPassword ¶ added in v1.0.1
func WithEmailPassword(config EmailPasswordConfig) ConfigOption
func WithEmailVerification ¶ added in v1.0.1
func WithEmailVerification(config EmailVerificationConfig) ConfigOption
func WithHooks ¶ added in v1.0.1
func WithHooks(hooksConfig HooksConfig) ConfigOption
func WithSecret ¶ added in v1.0.1
func WithSecret(secret string) ConfigOption
func WithSession ¶ added in v1.0.1
func WithSession(sessionConfig SessionConfig) ConfigOption
func WithTrustedOrigins ¶ added in v1.0.1
func WithTrustedOrigins(trustedOriginsConfig TrustedOriginsConfig) ConfigOption
func WithUser ¶ added in v1.0.1
func WithUser(userConfig UserConfig) ConfigOption
type DatabaseConfig ¶
type DatabaseHooksConfig ¶
type DatabaseHooksConfig struct {
Users *UserDatabaseHooksConfig
Accounts *AccountDatabaseHooksConfig
Sessions *SessionDatabaseHooksConfig
Verifications *VerificationDatabaseHooksConfig
}
type EmailPasswordConfig ¶
type EmailVerificationConfig ¶
type HooksConfig ¶
type PasswordConfig ¶
type ProviderType ¶
type ProviderType string
const ( ProviderEmail ProviderType = "email" ProviderGoogle ProviderType = "google" ProviderGitHub ProviderType = "github" ProviderDiscord ProviderType = "discord" )
type Session ¶
type Session struct {
ID string `json:"id" gorm:"primaryKey"`
UserID string `json:"user_id" gorm:"index"`
Token string `json:"token" gorm:"uniqueIndex"`
ExpiresAt time.Time `json:"expires_at"`
IPAddress *string `json:"ip_address,omitempty"`
UserAgent *string `json:"user_agent,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type SessionConfig ¶
type TrustedOriginsConfig ¶
type TrustedOriginsConfig struct {
Origins []string
}
type UserConfig ¶
type UserConfig struct {
ChangeEmail ChangeEmailConfig
}
type UserDatabaseHooksConfig ¶
type Verification ¶
type Verification struct {
ID string `json:"id" gorm:"primaryKey"`
UserID *string `json:"user_id,omitempty"`
Identifier string `json:"identifier"` // email or other identifier
Token string `json:"token"`
Type VerificationType `json:"type"`
ExpiresAt time.Time `json:"expires_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type VerificationDatabaseHooksConfig ¶
type VerificationDatabaseHooksConfig struct {
BeforeCreate func(verification *Verification) error
AfterCreate func(verification *Verification) error
}
type VerificationType ¶
type VerificationType string
const ( TypeEmailVerification VerificationType = "email_verification" TypePasswordReset VerificationType = "password_reset" TypeEmailChange VerificationType = "email_change" )
Click to show internal directories.
Click to hide internal directories.