Adapters overview
An adapter implements goauth.Adapter — the persistence layer Auth.js calls “database adapters”.
Core methods
| Method | Purpose |
|---|---|
CreateUser / GetUser / GetUserByEmail | User records |
LinkAccount / GetUserByAccount | OAuth account linking |
CreateSession / GetSessionAndUser / DeleteSession | Database sessions |
CreateVerificationToken / UseVerificationToken | Magic links, OTP, MFA, passkey challenges |
Bundled adapters
| Package | Backend | Migrator | SessionLister | AuthenticatorStore |
|---|---|---|---|---|
adapters/postgres | PostgreSQL | Yes | Yes | Yes |
adapters/mysql | MySQL / MariaDB | Yes | Yes | Yes |
adapters/mariadb | Alias of mysql | Yes | Yes | Yes |
adapters/memory | In-process maps | No | Yes | Yes |
adapters/redis | Redis | — | Yes | No |
adapters/mongodb | MongoDB | — | Yes | No |
Simple usage
import (
"database/sql"
_ "github.com/lib/pq"
"github.com/izetmolla/goauth/adapters/postgres"
)
db, _ := sql.Open("postgres", dsn)
adapter := postgres.New(db)
auth, _ := goauth.New(goauth.Config{
Secret: []string{secret},
Adapter: adapter, // auto Migrate() on New if Migrator
})
GORM
Pass GORM’s SQL pool:
sqlDB, _ := gormDB.DB()
adapter := postgres.New(sqlDB)
See SQL adapters.