auth

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2025 License: MIT Imports: 18 Imported by: 2

Documentation

Index

Constants

View Source
const (
	DefaultKey = "github.com/virzz/ginx/auth"
	TokenKey   = "github.com/virzz/ginx/auth/token"
)

Variables

This section is empty.

Functions

func AuthMW added in v0.3.0

func AuthMW() gin.HandlerFunc

func FlagSet

func FlagSet(name string) *pflag.FlagSet

func Init

func Init[T IDType](cfg *Config) gin.HandlerFunc

func InitWithData added in v0.3.0

func InitWithData[T IDType](cfg *Config, data Data[T]) gin.HandlerFunc

func IsRole added in v0.3.0

func IsRole(c *gin.Context, role string) bool

func New added in v0.3.0

func New() string

func RoleMW added in v0.3.0

func RoleMW(roles ...string) gin.HandlerFunc

Types

type Config

type Config struct {
	Enabled bool   `json:"enabled" yaml:"enabled"`
	MaxAge  int    `json:"maxage" yaml:"maxage"`                 // Expire(MaxAge)
	Host    string `json:"host" yaml:"host" default:"127.0.0.1"` // Redis Address
	Port    int    `json:"port" yaml:"port" default:"6379"`      // Redis Port
	Pass    string `json:"pass" yaml:"pass"`                     // Redis Password
	DB      int    `json:"db" yaml:"db"`                         // Redis DB
}

func (*Config) Addr

func (s *Config) Addr() string

func (*Config) WithAddr

func (s *Config) WithAddr(v string) *Config

func (*Config) WithDB

func (s *Config) WithDB(v int) *Config

func (*Config) WithMaxAge

func (s *Config) WithMaxAge(v int) *Config

func (*Config) WithPass

func (s *Config) WithPass(v string) *Config

func (*Config) WithPort

func (s *Config) WithPort(v int) *Config

type Data added in v0.3.0

type Data[T IDType] interface {
	Token() string
	ID() T
	Account() string
	Roles() []string
	Items() DataMap
	Get(string) any
	New() string
	Set(string, any) Data[T]
	SetToken(string) Data[T]
	SetID(T) Data[T]
	SetAccount(string) Data[T]
	SetValues(string, any) Data[T]
	SetRoles([]string) Data[T]
	Delete(string) Data[T]
	Clear() Data[T]
}

type DataMap added in v0.3.0

type DataMap map[string]any

func (DataMap) MarshalBinary added in v0.3.0

func (d DataMap) MarshalBinary() ([]byte, error)

func (*DataMap) UnmarshalBinary added in v0.3.0

func (d *DataMap) UnmarshalBinary(buf []byte) error

func (*DataMap) UnmarshalJSON added in v0.3.0

func (d *DataMap) UnmarshalJSON(buf []byte) error

func (*DataMap) UnmarshalText added in v0.3.0

func (d *DataMap) UnmarshalText(buf []byte) error

type DataStringSlice added in v0.3.0

type DataStringSlice []string

func (DataStringSlice) MarshalBinary added in v0.3.0

func (d DataStringSlice) MarshalBinary() ([]byte, error)

func (*DataStringSlice) UnmarshalBinary added in v0.3.0

func (d *DataStringSlice) UnmarshalBinary(buf []byte) error

func (*DataStringSlice) UnmarshalJSON added in v0.3.0

func (d *DataStringSlice) UnmarshalJSON(buf []byte) error

func (*DataStringSlice) UnmarshalText added in v0.3.0

func (d *DataStringSlice) UnmarshalText(buf []byte) error

type DefaultData added in v0.3.0

type DefaultData[T IDType] struct {
	Token_   string          `json:"token" redis:"token"`
	ID_      T               `json:"id" redis:"id"`
	Account_ string          `json:"account" redis:"account"`
	Roles_   DataStringSlice `json:"roles" redis:"roles"`
	Items_   DataMap         `json:"items" redis:"items"`
}

func (*DefaultData[T]) Account added in v0.3.0

func (d *DefaultData[T]) Account() string

func (*DefaultData[T]) Clear added in v0.3.0

func (d *DefaultData[T]) Clear() Data[T]

func (*DefaultData[T]) Delete added in v0.3.0

func (d *DefaultData[T]) Delete(key string) Data[T]

func (*DefaultData[T]) Get added in v0.3.0

func (d *DefaultData[T]) Get(key string) any

func (*DefaultData[T]) ID added in v0.3.0

func (d *DefaultData[T]) ID() T

func (*DefaultData[T]) Items added in v0.3.0

func (d *DefaultData[T]) Items() DataMap

func (*DefaultData[T]) New added in v0.3.0

func (d *DefaultData[T]) New() string

func (*DefaultData[T]) Roles added in v0.3.0

func (d *DefaultData[T]) Roles() []string

func (*DefaultData[T]) Set added in v0.3.0

func (d *DefaultData[T]) Set(key string, val any) Data[T]

func (*DefaultData[T]) SetAccount added in v0.3.0

func (d *DefaultData[T]) SetAccount(v string) Data[T]

func (*DefaultData[T]) SetID added in v0.3.0

func (d *DefaultData[T]) SetID(v T) Data[T]

func (*DefaultData[T]) SetRoles added in v0.3.0

func (d *DefaultData[T]) SetRoles(v []string) Data[T]

func (*DefaultData[T]) SetToken added in v0.3.0

func (d *DefaultData[T]) SetToken(v string) Data[T]

func (*DefaultData[T]) SetValues added in v0.3.0

func (d *DefaultData[T]) SetValues(k string, v any) Data[T]

func (*DefaultData[T]) Token added in v0.3.0

func (d *DefaultData[T]) Token() string

type IDType added in v0.3.0

type IDType interface {
	string | int64 | uint64 | int | uint
}

type RedisStore added in v0.3.0

type RedisStore[T IDType] struct {
	// contains filtered or unexported fields
}

func NewRedisStore added in v0.3.0

func NewRedisStore[T IDType](client redis.UniversalClient, maxAge ...int) (*RedisStore[T], error)

func (*RedisStore[T]) Clear added in v0.3.0

func (s *RedisStore[T]) Clear(ctx context.Context, v Data[T]) error

func (*RedisStore[T]) Get added in v0.3.0

func (s *RedisStore[T]) Get(ctx context.Context, v Data[T]) error

func (*RedisStore[T]) Save added in v0.3.0

func (s *RedisStore[T]) Save(ctx context.Context, v Data[T], lifetime ...time.Duration) error

type Session

type Session[T IDType] struct {
	IsNil bool

	Token_ string
	// contains filtered or unexported fields
}

func Default

func Default[T IDType](c *gin.Context) *Session[T]

func NewSession added in v0.3.0

func NewSession[T IDType](ctx context.Context, store *redis.Client, data Data[T], maxAge ...int) *Session[T]

func (*Session[T]) Account

func (s *Session[T]) Account() string

func (*Session[T]) Clear

func (s *Session[T]) Clear()

func (*Session[T]) Data added in v0.3.0

func (s *Session[T]) Data() Data[T]

func (*Session[T]) Delete

func (s *Session[T]) Delete(key string)

func (*Session[T]) Get

func (s *Session[T]) Get(key string) any

func (*Session[T]) HasRole

func (s *Session[T]) HasRole(role string) bool

func (*Session[T]) ID

func (s *Session[T]) ID() T

func (*Session[T]) MarshalJSON added in v0.3.0

func (s *Session[T]) MarshalJSON() ([]byte, error)

func (*Session[T]) Roles

func (s *Session[T]) Roles() []string

func (*Session[T]) Save

func (s *Session[T]) Save(lifetime ...time.Duration) error

func (*Session[T]) Set

func (s *Session[T]) Set(key string, val any)

func (*Session[T]) SetAccount

func (s *Session[T]) SetAccount(val string)

func (*Session[T]) SetID

func (s *Session[T]) SetID(val T)

func (*Session[T]) SetRoles

func (s *Session[T]) SetRoles(roles []string)

func (*Session[T]) SetValues

func (s *Session[T]) SetValues(key string, val any)

func (*Session[T]) Token

func (s *Session[T]) Token() string

func (*Session[T]) UnmarshalJSON added in v0.3.0

func (s *Session[T]) UnmarshalJSON(data []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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