pejhancctv/utils/parsetoken.go

41 lines
767 B
Go

package utils
import (
"app/models"
"fmt"
"os"
"strconv"
"github.com/golang-jwt/jwt/v5"
"github.com/joho/godotenv"
)
func ParseToken(tokenString string) (string, error) {
err := godotenv.Load("./config/.env")
if err != nil {
return "", err
}
secret := os.Getenv("SECRET")
claims := new(models.JwtClaims)
token, err := jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (interface{}, error) {
// Provide the same key used for signing the token
return []byte(secret), nil
})
if err != nil {
// Handle error, failed to parse the token
return "", err
}
if !token.Valid {
// Handle invalid token
return "", fmt.Errorf("invalid token")
}
fmt.Println(claims)
return strconv.FormatUint(uint64(claims.Jwt_id), 10), nil
}