Bläddra i källkod

fix: avoid using empty jsapi ticket from cache (#883)

Co-authored-by: niuweifan <niuweifan@66nao.com>
vvfan 1 månad sedan
förälder
incheckning
269d93ea6f
1 ändrade filer med 6 tillägg och 2 borttagningar
  1. 6 2
      credential/default_js_ticket.go

+ 6 - 2
credential/default_js_ticket.go

@@ -56,7 +56,9 @@ func (js *DefaultJsTicket) GetTicketContext(ctx context2.Context, accessToken st
 	// 先从cache中取
 	jsAPITicketCacheKey := fmt.Sprintf("%s_jsapi_ticket_%s", js.cacheKeyPrefix, js.appID)
 	if val := js.cache.Get(jsAPITicketCacheKey); val != nil {
-		return val.(string), nil
+		if ticketStr = val.(string); ticketStr != "" {
+			return
+		}
 	}
 
 	js.jsAPITicketLock.Lock()
@@ -64,7 +66,9 @@ func (js *DefaultJsTicket) GetTicketContext(ctx context2.Context, accessToken st
 
 	// 双检,防止重复从微信服务器获取
 	if val := js.cache.Get(jsAPITicketCacheKey); val != nil {
-		return val.(string), nil
+		if ticketStr = val.(string); ticketStr != "" {
+			return
+		}
 	}
 
 	var ticket ResTicket