Documentation
¶
Index ¶
- type Account
- type AccountDatabaseHooksConfig
- type ChangeEmailConfig
- type Config
- func (c *Config) WithAppName(name string) *Config
- func (c *Config) WithBasePath(path string) *Config
- func (c *Config) WithBaseURL(url string) *Config
- func (c *Config) WithDatabase(db DatabaseConfig) *Config
- func (c *Config) WithDatabaseHooks(databaseHooksConfig DatabaseHooksConfig) *Config
- func (c *Config) WithEmailPassword(config EmailPasswordConfig) *Config
- func (c *Config) WithEmailVerification(config EmailVerificationConfig) *Config
- func (c *Config) WithHooks(hooksConfig HooksConfig) *Config
- func (c *Config) WithSecret(secret string) *Config
- func (c *Config) WithSession(sessionConfig SessionConfig) *Config
- func (c *Config) WithTrustedOrigins(trustedOriginsConfig TrustedOriginsConfig) *Config
- func (c *Config) WithUser(userConfig UserConfig) *Config
- 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 (*Config) WithAppName ¶
func (*Config) WithBasePath ¶
func (*Config) WithBaseURL ¶
func (*Config) WithDatabase ¶
func (c *Config) WithDatabase(db DatabaseConfig) *Config
func (*Config) WithDatabaseHooks ¶
func (c *Config) WithDatabaseHooks(databaseHooksConfig DatabaseHooksConfig) *Config
func (*Config) WithEmailPassword ¶
func (c *Config) WithEmailPassword(config EmailPasswordConfig) *Config
func (*Config) WithEmailVerification ¶
func (c *Config) WithEmailVerification(config EmailVerificationConfig) *Config
func (*Config) WithHooks ¶
func (c *Config) WithHooks(hooksConfig HooksConfig) *Config
func (*Config) WithSecret ¶
func (*Config) WithSession ¶
func (c *Config) WithSession(sessionConfig SessionConfig) *Config
func (*Config) WithTrustedOrigins ¶
func (c *Config) WithTrustedOrigins(trustedOriginsConfig TrustedOriginsConfig) *Config
func (*Config) WithUser ¶
func (c *Config) WithUser(userConfig UserConfig) *Config
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.