diff --git a/auth/social_login.go b/auth/social_login.go index 131b9f3f0dfb5db633f47c8fad7a5d20e36590dd..e3d770eadb254db6c9e85d350de0379896c73970 100644 --- a/auth/social_login.go +++ b/auth/social_login.go @@ -71,3 +71,19 @@ func ValidateAppleCode(code, redirectURI, encryptionKeySecret string, isDebug bo return string_utils.InterfaceToString(email) } + +func ExtractAppleEmailFromIDToken(idToken string) (string, error) { + claim, err := apple.GetClaims(idToken) + if err != nil { + return "", err + } + + email := (*claim)["email"] + emailVerified := (*claim)["email_verified"] + + if emailVerified != true { + return "", errors.Error("email not verified") + } + + return string_utils.InterfaceToString(email) +}