Skip to content

gabor-boros/go-oauth2-pg

Repository files navigation

go-oauth2-pg

GoDoc Go Report Card Maintainability Test Coverage

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.

Installation

go get github.com/gabor-boros/go-oauth2-pg

Example usage

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)
	
	// ...
}

Contributing

Contributions are welcome! Please open an issue or a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Postgres storage for OAuth 2.0.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published