package jwt import ( _ "context" "gitea.kleinsense.nl/DariusKlein/kleinTodo/common" "github.com/golang-jwt/jwt/v5" "net/http" "os" "strings" ) func GetVerifiedUser(r *http.Request) (string, error) { verifyJWT, err := VerifyJWT(strings.TrimPrefix(r.Header.Get(common.AuthHeader), "Bearer \t")) if err != nil { return "", err } return verifyJWT, nil } // VerifyJWT verify JWT token and returns user object func VerifyJWT(authToken string) (string, error) { //get jwt secret from environment secret := os.Getenv("JWT_SECRET") //parse jwt token token, err := jwt.ParseWithClaims(authToken, &jwt.RegisteredClaims{}, func(token *jwt.Token) (interface{}, error) { return []byte(secret), nil }) if err != nil { return "", err } subject := token.Claims.(*jwt.RegisteredClaims).Subject return subject, err }