package auth import ( "context" "encoding/json" "errors" "fmt" "github.com/redis/go-redis/v9" g "platform/web/globals" ) func find(ctx context.Context, token string) (*Context, error) { // 读取认证数据 authJSON, err := g.Redis.Get(ctx, accessKey(token)).Result() if err != nil { if errors.Is(err, redis.Nil) { return nil, errors.New("invalid_token") } return nil, err } // 反序列化 auth := new(Context) if err := json.Unmarshal([]byte(authJSON), auth); err != nil { return nil, err } return auth, nil } func accessKey(token string) string { return fmt.Sprintf("session:%s", token) }