Compare commits

..

2 Commits

Author SHA1 Message Date
Yavolte fb585fabe6 use jwt claims 2025-06-30 11:25:55 +08:00
Yavolte 29d609ce0a fix cache bugs 2025-06-30 11:11:34 +08:00
3 changed files with 28 additions and 5 deletions

View File

@ -57,9 +57,16 @@ func WithAllow(paths ...string) Option {
} }
} }
func WithClaims(claims reflect.Type) Option { func WithClaims(claims any) Option {
return func(o *options) { return func(o *options) {
o.claims = claims if tv, ok := claims.(reflect.Type); ok {
o.claims = tv
} else {
o.claims = reflect.TypeOf(claims)
if o.claims.Kind() == reflect.Ptr {
o.claims = o.claims.Elem()
}
}
} }
} }

View File

@ -4,6 +4,8 @@ import (
"context" "context"
"encoding/json" "encoding/json"
"time" "time"
"git.nobla.cn/golang/aeus"
) )
type redisCache struct { type redisCache struct {
@ -57,7 +59,12 @@ func (c *redisCache) String() string {
} }
func NewCache(opts ...Option) *redisCache { func NewCache(opts ...Option) *redisCache {
return &redisCache{ cache := &redisCache{
opts: newOptions(opts...), opts: newOptions(opts...),
} }
app := aeus.FromContext(cache.opts.context)
if app != nil {
cache.opts.prefix = app.Name() + ":" + cache.opts.prefix
}
return cache
} }

View File

@ -1,11 +1,14 @@
package redis package redis
import ( import (
"context"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
) )
type ( type (
options struct { options struct {
context context.Context
client *redis.Client client *redis.Client
prefix string prefix string
} }
@ -19,6 +22,12 @@ func WithClient(client *redis.Client) Option {
} }
} }
func WithContext(ctx context.Context) Option {
return func(o *options) {
o.context = ctx
}
}
func WithPrefix(prefix string) Option { func WithPrefix(prefix string) Option {
return func(o *options) { return func(o *options) {
o.prefix = prefix o.prefix = prefix