Skip to main content

Adapters overview

An adapter implements goauth.Adapter — the persistence layer Auth.js calls “database adapters”.

Core methods

MethodPurpose
CreateUser / GetUser / GetUserByEmailUser records
LinkAccount / GetUserByAccountOAuth account linking
CreateSession / GetSessionAndUser / DeleteSessionDatabase sessions
CreateVerificationToken / UseVerificationTokenMagic links, OTP, MFA, passkey challenges

Bundled adapters

PackageBackendMigratorSessionListerAuthenticatorStore
adapters/postgresPostgreSQLYesYesYes
adapters/mysqlMySQL / MariaDBYesYesYes
adapters/mariadbAlias of mysqlYesYesYes
adapters/memoryIn-process mapsNoYesYes
adapters/redisRedisYesNo
adapters/mongodbMongoDBYesNo

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.