modulepackage
3.3.2
Repository: https://github.com/vgarvardt/go-oauth2-pg.git
Documentation: pkg.go.dev
# README
PostgreSQL Storage for OAuth 2.0
Install
Storage major version matches OAuth 2.0 major version, so use corresponding version (go modules compliant)
For gopkg.in/oauth2.v3
:
$ go get -u github.com/vgarvardt/go-oauth2-pg/v3
PostgreSQL drivers
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/jackc/pgx/v4"
pg "github.com/vgarvardt/go-oauth2-pg/v3"
"github.com/vgarvardt/go-pg-adapter/pgx4adapter"
"gopkg.in/oauth2.v3/manage"
)
func main() {
pgxConn, _ := pgx.Connect(context.TODO(), os.Getenv("DB_URI"))
manager := manage.NewDefaultManager()
// use PostgreSQL token store with pgx.Connection adapter
adapter := pgx4adapter.NewConn(pgxConn)
tokenStore, _ := pg.NewTokenStore(adapter, pg.WithTokenStoreGCInterval(time.Minute))
defer tokenStore.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.
MIT License
Copyright (c) 2020 Vladimir Garvardt
# Functions
NewClientStore creates PostgreSQL store instance.
NewTokenStore creates PostgreSQL store instance.
WithClientStoreInitTableDisabled returns option that disables table creation on client store instantiation.
WithClientStoreLogger returns option that sets client store logger implementation.
WithClientStoreTableName returns option that sets client store table name.
WithTokenStoreGCDisabled returns option that disables token store garbage collection.
WithTokenStoreGCInterval returns option that sets token store garbage collection interval.
WithTokenStoreInitTableDisabled returns option that disables table creation on token store instantiation.
WithTokenStoreLogger returns option that sets token store logger implementation.
WithTokenStoreTableName returns option that sets token store table name.
# Structs
ClientStore PostgreSQL client store.
ClientStoreItem data item.
TokenStore PostgreSQL token store.
TokenStoreItem data item.
# Interfaces
Logger is the PostgreSQL store logger interface.
# Type aliases
ClientStoreOption is the configuration options type for client store.
TokenStoreOption is the configuration options type for token store.