Categorygithub.com/rjewing/go-oauth2-dynamodb
modulepackage
0.0.0-20240116212516-5e9c5bee6d30
Repository: https://github.com/rjewing/go-oauth2-dynamodb.git
Documentation: pkg.go.dev

# README

go-oauth2-dynamodb

DynamoDB store implementation for https://github.com/go-oauth2/oauth2

Based on https://github.com/go-oauth2/mongo

Based on https://github.com/contamobi/go-oauth2-dynamodb

Install

$ go get -u github.com/rjewing/go-oauth2-dynamodb

Usage

package main

import (
	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/dynamodb"
	
	ddbstore "github.com/rjewing/go-oauth2-dynamodb"
	"gopkg.in/oauth2.v3/manage"
)

func main() {
	manager := manage.NewDefaultManager()

	config := &aws.Config{
		Region:   aws.String("us-west-2"),
		Endpoint: aws.String("http://localhost:8000"),
	}
	sess := session.Must(session.NewSession(config))
	client := dynamodb.New(sess)

	// use dynamodb token store
	manager.MapTokenStorage(
	ddbstore.NewTokenStore(client, ddbstore.NewDefaultTokenConfig()),
	)
	// ...
}

Testing

$ docker pull amazon/dynamodb-local
$ docker run -p 8000:8000 amazon/dynamodb-local

This sets up a local dynamodb server running on http://localhost:8000.

MIT License

Copyright (c) 2020 Ryan Ewing

# Functions

InsertAccessToken inserts an access code into the basic table.
InsertAuthorizationCode inserts an authorization code into the basic table.
InsertRefreshToken inserts an access code into the basic table.
NewClientStore create a client store instance based on dynamodb.
NewDefaultClientConfig create a default client configuration.
NewDefaultTokenConfig returns a default token config.
NewTokenStore returns a new token store.

# Structs

ClientConfig client configuration parameters.
ClientStore DynamoDB storage for OAuth 2.0.
TokenConfig token configuration parameters.
TokenStore stores the dynamodb client and token config.