jwt-go.go 906 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package util
  2. import (
  3. "github.com/golang-jwt/jwt"
  4. "time"
  5. )
  6. var jwtKey = []byte("hello223rdwvwdfforl-'dandfdsafdafdsfsmay")
  7. type Claims struct {
  8. UserId int64
  9. jwt.StandardClaims
  10. }
  11. func CreatToken(uid int64) (string, error) {
  12. expirationTime := time.Now().Add(31 * 24 * time.Hour)
  13. claims := &Claims{
  14. UserId: uid,
  15. StandardClaims: jwt.StandardClaims{
  16. ExpiresAt: expirationTime.Unix(),
  17. IssuedAt: time.Now().Unix(),
  18. Issuer: "may1145",
  19. Subject: "user token",
  20. },
  21. }
  22. token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
  23. tokenString, err := token.SignedString(jwtKey)
  24. if err != nil {
  25. return "", err
  26. }
  27. return tokenString, nil
  28. }
  29. func ParseToken(tokenString string) (*jwt.Token, *Claims, error) {
  30. claims := &Claims{}
  31. token, err := jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (i any, err error) {
  32. return jwtKey, nil
  33. })
  34. return token, claims, err
  35. }