You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The store accepts an adapter interface that interacts with the DB.
Adapter and implementations extracted to separate
package github.com/vgarvardt/go-pg-adapter for easier maintenance.
Usage example
package main
import (
"context""os""time""github.com/go-oauth2/oauth2/v4/manage""github.com/jackc/pgx/v4"
pg "github.com/vgarvardt/go-oauth2-pg/v4""github.com/vgarvardt/go-pg-adapter/pgx4adapter"
)
funcmain() {
pgxConn, _:=pgx.Connect(context.TODO(), os.Getenv("DB_URI"))
manager:=manage.NewDefaultManager()
// use PostgreSQL token store with pgx.Connection adapteradapter:=pgx4adapter.NewConn(pgxConn)
tokenStore, _:=pg.NewTokenStore(adapter, pg.WithTokenStoreGCInterval(time.Minute))
defertokenStore.Close()
clientStore, _:=pg.NewClientStore(adapter)
manager.MapTokenStorage(tokenStore)
manager.MapClientStorage(clientStore)
// ...
}
Testing
Linter and tests are running for every Pul Request, but it is possible to run linter
and tests locally using docker and make.
Run linter: make link. This command runs liner in docker container with the project
source code mounted.
Run tests: make test. This command runs project dependencies in docker containers
if they are not started yet and runs go tests with coverage.