mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-05-03 06:08:42 +00:00
42 lines
879 B
Go
42 lines
879 B
Go
package shared
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/golang-jwt/jwt/v4"
|
|
"time"
|
|
)
|
|
|
|
func IsTokenExpired(tokenString string) (bool, error) {
|
|
claims, err := getTokenClaims(tokenString)
|
|
if err != nil {
|
|
return true, err
|
|
}
|
|
|
|
expiry := time.Unix(int64(claims["exp"].(float64)), 0)
|
|
|
|
return time.Now().After(expiry), nil
|
|
}
|
|
|
|
func GetTokenEmail(tokenString string) (string, error) {
|
|
claims, err := getTokenClaims(tokenString)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return claims["email"].(string), nil
|
|
}
|
|
|
|
func getTokenClaims(tokenString string) (jwt.MapClaims, error) {
|
|
token, _, err := new(jwt.Parser).ParseUnverified(tokenString, jwt.MapClaims{})
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to parse token, err: %v", err)
|
|
}
|
|
|
|
claims, ok := token.Claims.(jwt.MapClaims)
|
|
if !ok {
|
|
return nil, fmt.Errorf("can't convert token's claims to standard claims")
|
|
}
|
|
|
|
return claims, nil
|
|
}
|