This package is a Postgres storage implementation for go-oauth2 using pgx.
The package is following semantic versioning and is not tied to the versioning of go-oauth2.
go get github.com/gabor-boros/go-oauth2-pg
package main
import (
"context"
"os"
arangoDriver "github.com/pg/go-driver"
arangoHTTP "github.com/pg/go-driver/http"
"github.com/go-oauth2/oauth2/v4/manage"
pgstore "github.com/gabor-boros/go-oauth2-pg"
)
func main() {
conn, _ := arangoHTTP.NewConnection(arangoHTTP.ConnectionConfig{
Endpoints: []string{os.Getenv("ARANGO_URL")},
})
client, _ := arangoDriver.NewClient(arangoDriver.ClientConfig{
Connection: conn,
Authentication: arangoDriver.BasicAuthentication(os.Getenv("ARANGO_USER"), os.Getenv("ARANGO_PASSWORD")),
})
db, _ := client.Database(context.Background(), os.Getenv("ARANGO_DB"))
clientStore, _ := pgstore.NewClientStore(
pgstore.WithClientStoreDatabase(db),
pgstore.WithClientStoreTable("oauth2_clients"),
)
tokenStore, _ := pgstore.NewTokenStore(
pgstore.WithTokenStoreDatabase(db),
pgstore.WithTokenStoreTable("oauth2_tokens"),
)
manager := manage.NewDefaultManager()
manager.MapTokenStorage(tokenStore)
manager.MapClientStorage(clientStore)
// ...
}
Contributions are welcome! Please open an issue or a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.