GenerateToken.go 520 B

123456789101112131415161718192021
  1. package tool
  2. import (
  3. "crypto/ecdsa"
  4. "github.com/golang-jwt/jwt/v5"
  5. )
  6. // GenerateToken ..
  7. func GenerateToken(key *ecdsa.PrivateKey, claims jwt.MapClaims, cs CurveStandard) (token string, err error) {
  8. switch cs {
  9. case P_256:
  10. return jwt.NewWithClaims(jwt.SigningMethodES256, claims).SignedString(key)
  11. case P_384:
  12. return jwt.NewWithClaims(jwt.SigningMethodES384, claims).SignedString(key)
  13. case P_521:
  14. return jwt.NewWithClaims(jwt.SigningMethodES512, claims).SignedString(key)
  15. default:
  16. return "", nil
  17. }
  18. }