package idp import ( "encoding/base64" "encoding/json" "strings" ) type hintContext struct{} func hintSubject(raw string) string { const invalid = "!" parts := strings.Split(raw, ".") if len(parts) != 3 { return invalid } payload, err := base64.RawURLEncoding.Strict().DecodeString(parts[1]) if err != nil { return invalid } var claims struct { Subject string `json:"sub"` } if err := json.Unmarshal(payload, &claims); err != nil || claims.Subject == "" { return invalid } return claims.Subject }