diff --git a/main.go b/main.go index 52466a9..48c4966 100644 --- a/main.go +++ b/main.go @@ -86,9 +86,11 @@ func JWTAuthMiddleware() gin.HandlerFunc { } //如果请求为login或register,则不需要验证token - if strings.Contains(c.Request.URL.Path, "/login") || strings.Contains(c.Request.URL.Path, "/register") || strings.Contains(c.Request.URL.Path, "/uuid") || strings.Contains(c.Request.URL.Path, "/gqr") || strings.Contains(c.Request.URL.Path, "/cid/callback") { - c.Next() - return + for k, _ := range proto.Url_map { + if strings.Contains(c.Request.URL.Path, k) { + c.Next() + return + } } if tokenString == "" { //c.AbortWithStatus(200) diff --git a/proto/conf.go b/proto/conf.go index 427fa4b..15b5053 100644 --- a/proto/conf.go +++ b/proto/conf.go @@ -9,6 +9,7 @@ import ( var Config ConfigStruct var SigningKey = []byte{} +var Url_map = map[string]bool{"/login": true, "/register": true, "/uuid": true, "/gqr": true, "/cid/callback": true} const ( MYSQL_USER = "video_t2" diff --git a/worker/redis.go b/worker/redis.go index 709790c..b716737 100644 --- a/worker/redis.go +++ b/worker/redis.go @@ -346,3 +346,29 @@ func GetRedisBitmap(key string, offset int64) int { } return int(val) } + +// 发布订阅者模式-发布消息 +func Publish(channel string, message string, expire time.Duration) { + ctx := context.Background() + err := redisClient.Publish(ctx, channel, message).Err() + if err != nil { + fmt.Println("Error publishing message: %v", err) + } + err = redisClient.Expire(ctx, channel, expire).Err() + if err != nil { + fmt.Println("Error setting key: %v", err) + } +} + +// 发布订阅者模式-订阅消息 +func Subscribe(channel string) []string { + ctx := context.Background() + pubsub := redisClient.Subscribe(ctx, channel) + ch := pubsub.Channel() + defer pubsub.Close() + var messages []string + for msg := range ch { + messages = append(messages, msg.Payload) + } + return messages +}