oauth2gorm

package module
v0.0.0-...-9594378 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2023 License: MIT Imports: 15 Imported by: 0

README

go-oauth2-gorm

Credits

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

Feature

Support gorm v2

Documentation

Index

Constants

View Source
const (
	MySQL = iota
	PostgreSQL
	SQLite
	SQLServer
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientStore

type ClientStore struct {
	// contains filtered or unexported fields
}

func NewClientStore

func NewClientStore(config *Config) *ClientStore

func NewClientStoreWithDB

func NewClientStoreWithDB(config *Config, db *gorm.DB) *ClientStore

func (*ClientStore) Create

func (s *ClientStore) Create(ctx context.Context, info oauth2.ClientInfo) error

func (*ClientStore) GetByID

func (s *ClientStore) GetByID(ctx context.Context, id string) (oauth2.ClientInfo, error)

type ClientStoreItem

type ClientStoreItem struct {
	ID        string
	Secret    string `gorm:"type:varchar(512)"`
	Domain    string `gorm:"type:varchar(512)"`
	Data      string `gorm:"type:text"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt gorm.DeletedAt `gorm:"index"`
}

type Config

type Config struct {
	TableName   string
	MaxLifetime time.Duration
	Dialector   gorm.Dialector
}

Config gorm configuration

func NewConfig

func NewConfig(dsn string, dbType DBType, tableName string) *Config

type DBType

type DBType int8

type TokenStore

type TokenStore struct {
	// contains filtered or unexported fields
}

Store mysql token store

func NewTokenStore

func NewTokenStore(config *Config, gcInterval int) *TokenStore

NewStore create mysql store instance,

func NewTokenStoreWithDB

func NewTokenStoreWithDB(config *Config, db *gorm.DB, gcInterval int) *TokenStore

func (*TokenStore) Close

func (s *TokenStore) Close()

Close close the store

func (*TokenStore) Create

func (s *TokenStore) Create(ctx context.Context, info oauth2.TokenInfo) error

Create create and store the new token information

func (*TokenStore) GetByAccess

func (s *TokenStore) GetByAccess(ctx context.Context, access string) (oauth2.TokenInfo, error)

GetByAccess use the access token for token information data

func (*TokenStore) GetByCode

func (s *TokenStore) GetByCode(ctx context.Context, code string) (oauth2.TokenInfo, error)

GetByCode use the authorization code for token information data

func (*TokenStore) GetByRefresh

func (s *TokenStore) GetByRefresh(ctx context.Context, refresh string) (oauth2.TokenInfo, error)

GetByRefresh use the refresh token for token information data

func (*TokenStore) RemoveByAccess

func (s *TokenStore) RemoveByAccess(ctx context.Context, access string) error

RemoveByAccess use the access token to delete the token information

func (*TokenStore) RemoveByCode

func (s *TokenStore) RemoveByCode(ctx context.Context, code string) error

RemoveByCode delete the authorization code

func (*TokenStore) RemoveByRefresh

func (s *TokenStore) RemoveByRefresh(ctx context.Context, refresh string) error

RemoveByRefresh use the refresh token to delete the token information

func (*TokenStore) SetStdout

func (s *TokenStore) SetStdout(stdout io.Writer) *TokenStore

SetStdout set error output

type TokenStoreItem

type TokenStoreItem struct {
	gorm.Model

	ExpiredAt int64
	Code      string `gorm:"type:varchar(512)"`
	Access    string `gorm:"type:varchar(512)"`
	Refresh   string `gorm:"type:varchar(512)"`
	Data      string `gorm:"type:text"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL