golang jwt 签署令牌Authentication token

1.要安装 jwt 包,首先需要 安装Go,然后可以使用下面的命令将其添加jwt-go为 Go 程序中的依赖项。 go get -u github.com/golang-jwt/jwt/v5 2.将其导入到您的代码中: import "github.com/golang-jwt/jwt/v5" 3.demo func Test(t *testing.T) { //商户 subject := "01H" // 密钥 secretBase64 := "AwFj+OTCI=" secret, err := base64.StdEncoding.DecodeString(secretBase64) if err != nil { log.Fatalf("Error decoding base64 secret: %v", err) } // 过期秒数 expirseIn := 60 * time.Second // 创建jwt token token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "sub": subject, "exp": time.Now().Add(expirseIn).Unix(), }) // 使用密钥签名 tokenString, err := token.SignedString(secret) if err != nil { log.Fatalf("Error signing token: %v", err) } fmt.Println("tokenString=", tokenString) m := make(mapinterface m = "www" m = "qqq" // 将数据转为JSON格式 jsonData, err := json.Marshal(m) if err != nil { log.Fatalf("Error marshalling JSON: %v", err) } client := &http.Client{} url := "https://demo.com" method := "POST" req, err := http.NewRequest(method, url, bytes.NewBuffer(jsonData)) if err != nil { log.Fatalf("Error creating request: %v", err) } req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", tokenString)) req.Header.Set("Content-Type", "application/json; charset=utf-8") resp, err := client.Do(req) if err != nil { log.Fatalf("Error sending request: %v", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatalf("Error reading response body: %v", err) } log.Printf("Response body: %s", string(body)) } log.Printf("Response StatusCode: %d,%d", resp.StatusCode,http.StatusOK) info := TestRespone{} err = ffjson.Unmarshal(body, &info) if err != nil { log.Printf("body