package claims import ( "RenewCMS/api/pkg/authtoken" "math" "net/http" ) func UserId(r *http.Request) (uint32, bool) { claims, err := authtoken.FromContext(r.Context()) if err != nil { return 0, false } rawUserId, ok := claims["user_id"] if !ok { return 0, false } userIdFloat, ok := rawUserId.(float64) if !ok { return 0, false } if userIdFloat < 0 || userIdFloat > math.MaxUint32 || userIdFloat != math.Trunc(userIdFloat) { return 0, false } return uint32(userIdFloat), true } func TokenVersion(r *http.Request) (uint32, bool) { claims, err := authtoken.FromContext(r.Context()) if err != nil { return 0, false } rawTokenVersion, ok := claims["token_version"] if !ok { return 0, false } tokenVersionFloat, ok := rawTokenVersion.(float64) if !ok { return 0, false } return uint32(tokenVersionFloat), true }