# README
go-oauth2-dynamodb
DynamoDB store implementation for https://github.com/go-oauth2/oauth2
Based on https://github.com/go-oauth2/mongo
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.