UnmarshalIdentityJSON raw claim bytes as IdentityJson
(claims []byte)
| 69 | |
| 70 | // UnmarshalIdentityJSON raw claim bytes as IdentityJson |
| 71 | func UnmarshalIdentityJSON(claims []byte) (*IdentityJson, error) { |
| 72 | if len(claims) <= 0 { |
| 73 | return nil, errors.New("can't extract identity claims from an empty byte slice") |
| 74 | } |
| 75 | identity := IdentityJson{} |
| 76 | if err := json.Unmarshal(claims, &identity); err != nil { |
| 77 | return nil, err |
| 78 | } |
| 79 | decoder := base.JSONDecoder(bytes.NewReader(claims)) |
| 80 | decoder.UseNumber() |
| 81 | if err := decoder.Decode(&identity.Claims); err != nil { |
| 82 | return nil, err |
| 83 | } |
| 84 | delete(identity.Claims, "iss") |
| 85 | delete(identity.Claims, "sub") |
| 86 | delete(identity.Claims, "aud") |
| 87 | delete(identity.Claims, "exp") |
| 88 | delete(identity.Claims, "iat") |
| 89 | delete(identity.Claims, "nbf") |
| 90 | delete(identity.Claims, "email") |
| 91 | return &identity, nil |
| 92 | } |
| 93 | |
| 94 | // VerifyClaims parses a raw ID Token and verifies the claim. |
| 95 | func VerifyClaims(rawIDToken, clientID, issuer string) (*Identity, error) { |
no test coverage detected