MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / UnmarshalIdentityJSON

Function UnmarshalIdentityJSON

auth/oidc_verify.go:71–92  ·  view source on GitHub ↗

UnmarshalIdentityJSON raw claim bytes as IdentityJson

(claims []byte)

Source from the content-addressed store, hash-verified

69
70// UnmarshalIdentityJSON raw claim bytes as IdentityJson
71func 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.
95func VerifyClaims(rawIDToken, clientID, issuer string) (*Identity, error) {

Callers 1

VerifyClaimsFunction · 0.85

Calls 4

JSONDecoderFunction · 0.92
UseNumberMethod · 0.80
DecodeMethod · 0.65
UnmarshalMethod · 0.45

Tested by

no test coverage detected