это странная golang вещь:
requestHistory := claims["request_history"] // 1
if requestHistory == nil {
requestHistory = []float64{}
}
requestHistory, ok = requestHistory.([]float64) // 2
строка, помеченная // 2, не переназначает переменную на новый тип, она поддерживает исходный тип interface{}
, который объявлен из line // 1
В конечном счете, именно поэтому ошибка программирования, правильный способ сделать это - начать здесь вместо этого:
requestHistory, ok := claims["request_history"].([]interface{})
, где claims
- это тип map[string]interface{}