Documentation
¶
Index ¶
- Constants
- func AuthMW() gin.HandlerFunc
- func FlagSet(name string) *pflag.FlagSet
- func Init[T IDType](cfg *Config) gin.HandlerFunc
- func InitWithData[T IDType](cfg *Config, data Data[T]) gin.HandlerFunc
- func IsRole(c *gin.Context, role string) bool
- func New() string
- func RoleMW(roles ...string) gin.HandlerFunc
- type Config
- type Data
- type DataMap
- type DataStringSlice
- type DefaultData
- func (d *DefaultData[T]) Account() string
- func (d *DefaultData[T]) Clear() Data[T]
- func (d *DefaultData[T]) Delete(key string) Data[T]
- func (d *DefaultData[T]) Get(key string) any
- func (d *DefaultData[T]) ID() T
- func (d *DefaultData[T]) Items() DataMap
- func (d *DefaultData[T]) New() string
- func (d *DefaultData[T]) Roles() []string
- func (d *DefaultData[T]) Set(key string, val any) Data[T]
- func (d *DefaultData[T]) SetAccount(v string) Data[T]
- func (d *DefaultData[T]) SetID(v T) Data[T]
- func (d *DefaultData[T]) SetRoles(v []string) Data[T]
- func (d *DefaultData[T]) SetToken(v string) Data[T]
- func (d *DefaultData[T]) SetValues(k string, v any) Data[T]
- func (d *DefaultData[T]) Token() string
- type IDType
- type RedisStore
- type Session
- func (s *Session[T]) Account() string
- func (s *Session[T]) Clear()
- func (s *Session[T]) Data() Data[T]
- func (s *Session[T]) Delete(key string)
- func (s *Session[T]) Get(key string) any
- func (s *Session[T]) HasRole(role string) bool
- func (s *Session[T]) ID() T
- func (s *Session[T]) MarshalJSON() ([]byte, error)
- func (s *Session[T]) Roles() []string
- func (s *Session[T]) Save(lifetime ...time.Duration) error
- func (s *Session[T]) Set(key string, val any)
- func (s *Session[T]) SetAccount(val string)
- func (s *Session[T]) SetID(val T)
- func (s *Session[T]) SetRoles(roles []string)
- func (s *Session[T]) SetValues(key string, val any)
- func (s *Session[T]) Token() string
- func (s *Session[T]) UnmarshalJSON(data []byte) error
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 InitWithData ¶ added in v0.3.0
func InitWithData[T IDType](cfg *Config, data Data[T]) gin.HandlerFunc
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) WithMaxAge ¶
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
func (DataMap) MarshalBinary ¶ added in v0.3.0
func (*DataMap) UnmarshalBinary ¶ added in v0.3.0
func (*DataMap) UnmarshalJSON ¶ added in v0.3.0
func (*DataMap) UnmarshalText ¶ added in v0.3.0
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 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
type Session ¶
type Session[T IDType] struct { IsNil bool Token_ string // contains filtered or unexported fields }
func NewSession ¶ added in v0.3.0
func (*Session[T]) MarshalJSON ¶ added in v0.3.0
func (*Session[T]) SetAccount ¶
func (*Session[T]) UnmarshalJSON ¶ added in v0.3.0
Click to show internal directories.
Click to hide internal directories.