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)
+}