|
@@ -0,0 +1,41 @@
|
|
|
+package util
|
|
|
+
|
|
|
+import (
|
|
|
+ "github.com/golang-jwt/jwt"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+var jwtKey = []byte("hello223rdwvwdfforl-'dandfdsafdafdsfsmay")
|
|
|
+
|
|
|
+type Claims struct {
|
|
|
+ UserId string
|
|
|
+ jwt.StandardClaims
|
|
|
+}
|
|
|
+
|
|
|
+func CreatToken(uid string) (string, error) {
|
|
|
+ expirationTime := time.Now().Add(31 * 24 * time.Hour)
|
|
|
+ claims := &Claims{
|
|
|
+ UserId: uid,
|
|
|
+ StandardClaims: jwt.StandardClaims{
|
|
|
+ ExpiresAt: expirationTime.Unix(),
|
|
|
+ IssuedAt: time.Now().Unix(),
|
|
|
+ Issuer: "may1145",
|
|
|
+ Subject: "user token",
|
|
|
+ },
|
|
|
+ }
|
|
|
+ token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
|
|
|
+ tokenString, err := token.SignedString(jwtKey)
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+ return tokenString, nil
|
|
|
+}
|
|
|
+
|
|
|
+func ParseToken(tokenString string) (*jwt.Token, *Claims, error) {
|
|
|
+ claims := &Claims{}
|
|
|
+
|
|
|
+ token, err := jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (i any, err error) {
|
|
|
+ return jwtKey, nil
|
|
|
+ })
|
|
|
+ return token, claims, err
|
|
|
+}
|