SQL adapters (PostgreSQL & MySQL)
Table prefix
Default prefix: goauth_ → tables goauth_users, goauth_sessions, etc.
postgres.New(db, postgres.WithPrefix("myapp_"))
Schema
Run automatically when adapter implements Migrator and is passed to goauth.New:
| Table | Purpose |
|---|---|
{prefix}users | User profiles |
{prefix}accounts | OAuth provider links |
{prefix}sessions | Database sessions (id UUID, session_token unique) |
{prefix}verification_tokens | Email, OTP, MFA, passkey challenges |
{prefix}authenticators | WebAuthn credentials |
Manual migration:
_, err := db.Exec(postgres.Schema("goauth_"))
sqladapter.DB
Both adapters accept anything implementing sqladapter.DB (*sql.DB, GORM pool).
MySQL UseVerificationToken prefers sqladapter.TxBeginner for atomic delete — use *sql.DB or gormDB.DB().
Advanced: connection strings
PostgreSQL:
postgres://user:pass@host:5432/db?sslmode=require
MySQL:
user:pass@tcp(host:3306)/db?parseTime=true&loc=UTC
Enable multiStatements=true for mysql driver if running raw Schema() in one Exec.