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

Function getIdentity

auth/oidc_verify.go:198–221  ·  view source on GitHub ↗

getIdentity returns identity claims extracted from an ID token.

(idToken *oidc.IDToken)

Source from the content-addressed store, hash-verified

196
197// getIdentity returns identity claims extracted from an ID token.
198func getIdentity(idToken *oidc.IDToken) (identity *Identity, ok bool, identityErr error) {
199 if idToken == nil {
200 return nil, false, errors.New("can't extract identity claims from a nil token")
201 }
202 identity = &Identity{
203 Issuer: idToken.Issuer,
204 Audience: idToken.Audience,
205 Subject: idToken.Subject,
206 Expiry: idToken.Expiry,
207 IssuedAt: idToken.IssuedAt,
208 }
209 claims := map[string]interface{}{}
210 if err := idToken.Claims(&claims); err != nil {
211 identityErr = pkgerrors.Wrap(err, "failed to extract identity claims from token")
212 }
213 identity.Claims = claims
214 if claim, found := claims["email"]; found {
215 var ok bool
216 if identity.Email, ok = claim.(string); !ok {
217 return identity, true, fmt.Errorf("oidc: can't cast claim %q as string", "email")
218 }
219 }
220 return identity, true, identityErr
221}

Callers 1

verifyTokenMethod · 0.85

Calls 1

ErrorfMethod · 0.80

Tested by

no test coverage detected