From 5be47317b448ffeba75ffdb5fd50cddb02166880 Mon Sep 17 00:00:00 2001
From: Cornel Rautenbach <cornel.rautenbach@gmail.com>
Date: Mon, 6 Jan 2025 23:03:35 +0200
Subject: [PATCH] ExtractAppleEmailFromIDToken

---
 auth/social_login.go | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/auth/social_login.go b/auth/social_login.go
index 131b9f3..e3d770e 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)
+}
-- 
GitLab