package main

import (
	"fmt"
	//"github.com/gin-gonic/gin"
	"github.com/golang-jwt/jwt"
	"time"
)

var accessKey = "next654c5506ab4fcf3e17cf970b"                  // NextHuman平台accessKey
var accessSecret = "xhInaX3Vk8Mv9KTWZMM5GoFPCf5Gf5VEMo8K9RjROw" // NextHuman平台 accessSecret

func generateToken(accessKey, accessSecret string) (string, error) {
	// 创建 JWT 的头部
	token := jwt.New(jwt.SigningMethodHS256)

	// 设置 JWT 的负载（Payload）
	claims := token.Claims.(jwt.MapClaims)
	claims["aud"] = "app"                                 // 接收者
	claims["iss"] = accessKey                             // 签发者
	claims["exp"] = time.Now().Add(time.Hour * 12).Unix() // 过期时间
	claims["iat"] = time.Now().Unix()                     // 签发时间

	// 使用 accessSecret 来签名并生成最终的 Token
	tokenString, err := token.SignedString([]byte(accessSecret))
	if err != nil {
		return "", err
	}

	return tokenString, nil
}

func main() {
	tokenString, err := generateToken(accessKey, accessSecret)
	if err != nil {
		fmt.Println("Token generation failed:", err)
		return
	}
	fmt.Println("Generated Token:", tokenString)
}
