התחברות עם Apple: אינטגרציה מלאה של הרשאת Apple ID

משתמשים עלולים להיתקל בבעיה שבה הם לא מצליחים להתחבר מחדש לאפליקציה אם הנתונים שלהם לא נשמרו במהלך ההתחברות הראשונית עם Apple ID—בעיה נפוצה שקל להתעלם ממנה. אנחנו מבצעים אינטגרציה מלאה של Sign in with Apple, ומטפלים בכל הניואנסים של העברת דוא"ל ושם כך שהגישה תמיד תעבוד כראוי. הצוות שלנו מכסה את כל המחזור, מהגדרת האימות ועד לתמיכה, ומספק פתרון אמין העומד בדרישות App Store.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
התחברות עם Apple: אינטגרציה מלאה של הרשאת Apple ID
בינוני
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    868
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1288
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

כניסה עם Apple: אינטגרציה מלאה של הרשאת Apple ID

משתמשים לא יכולים להיכנס מחדש לאפליקציה – כאב נפוץ עבור צוותים שלא מודעים למשלוח החד-פעמי של הדוא"ל על ידי Apple. ב-70% מהמקרים, הדוא"ל לא נשמר בשרת, ובכניסות הבאות Apple לא שולחת אותו שוב. נתקלנו בכך פעמים רבות ופיתחנו פתרון אמין. המטרה שלנו היא ליישם כניסה עם Apple כך שמשתמשים תמיד יוכלו לאמת את זהותם מחדש, והאפליקציה תעמוד בהנחיות סקירת ה-App Store.

כיצד Apple מעבירה נתוני משתמש

Apple לא נותנת לאפליקציה את הדוא"ל האמיתי של המשתמש – אם המשתמש בוחר להסתיר אותו, האפליקציה מקבלת כתובת ממסר כמו [email protected]. הודעות לכתובת זו מועברות על ידי Apple לכתובת האמיתית. אם המשתמש מבטל את הגישה, הממסר מפסיק לפעול.

שם ודוא"ל מועברים רק פעם אחת – בהרשאה הראשונה. אם לא תשמרו אותם במסד הנתונים, Apple לא תספק אותם בכניסה מחדש. זו לא תקלה; זו החלטה מכוונת של Apple. צוותים שלא מודעים לכך מגלים את הבעיה בסביבת הייצור: משתמשים לא יכולים לאמת את זהותם מחדש כי השרת לא שמר את הדוא"ל בכניסה הראשונה.

יישום ב-iOS

import AuthenticationServices

// Запрос авторизации
let appleIDProvider = ASAuthorizationAppleIDProvider()
let request = appleIDProvider.createRequest()
request.requestedScopes = [.fullName, .email]

let authorizationController = ASAuthorizationController(authorizationRequests: [request])
authorizationController.delegate = self
authorizationController.presentationContextProvider = self
authorizationController.performRequests()

// Обработка результата
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
    guard let credential = authorization.credential as? ASAuthorizationAppleIDCredential else { return }
    
    let userID = credential.user // Стабильный идентификатор пользователя
    let identityToken = credential.identityToken // JWT для верификации на сервере
    let authorizationCode = credential.authorizationCode // Для обмена на refresh token
    
    // email и fullName доступны ТОЛЬКО при первой авторизации
    let email = credential.email
    let fullName = credential.fullName
}

import AuthenticationServices // Запрос авторизации let appleIDProvider = ASAuthorizationAppleIDProvider() let request = appleIDProvider.createRequest() request.requestedScopes = [.fullName, .email] let authorizationController = ASAuthorizationController(authorizationRequests: [request]) authorizationController.delegate = self authorizationController.presentationContextProvider = self authorizationController.performRequests() // Обработка результата func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) { guard let credential = authorization.credential as? ASAuthorizationAppleIDCredential else { return } let userID = credential.user // Стабильный идентификатор пользователя let identityToken = credential.identityToken // JWT для верификации на сервере let authorizationCode = credential.authorizationCode // Для обмена на refresh token // email и fullName доступны ТОЛЬКО при первой авторизации let email = credential.email let fullName = credential.fullName } הוא מזהה יציב וייחודי לזוג (משתמש, אפליקציה). אל תשתמשו בו לזיהוי משתמשים בין אפליקציות של אותו צוות (השתמשו ב-credential.user עם טענת identityToken לשם כך).

אימות JWT בשרת

הלקוח מעביר sub (JWT) לשרת. השרת מאמת:

  1. חתימת הטוקן עם המפתחות הציבוריים של Apple (מפתחות ב-identityToken)
  2. טענת https://appleid.apple.com/auth/keys תואמת ל-Bundle ID של האפליקציה
  3. aud = iss
  4. https://appleid.apple.com לא פג תוקף

לאחר ההרשאה הראשונה, exp מוחלף ב-authorizationCode דרך נקודת הקצה של הטוקן של Apple. ה-refresh_token נשמר בשרת ומשמש לבדיקה אם המשתמש ביטל את הגישה. תיעוד Apple.

כיצד לבדוק את סטטוס ההרשאה?

בדקו את הסטטוס בכל הפעלה של האפליקציה:

let appleIDProvider = ASAuthorizationAppleIDProvider()
appleIDProvider.getCredentialState(forUserID: savedUserID) { state, error in
    switch state {
    case .authorized:
        break // Всё хорошо
    case .revoked:
        // Пользователь отозвал доступ — разлогиниваем
        break
    case .notFound:
        // Первый вход или данные удалены
        break
    }
}

השוואת פלטפורמות

פלטפורמה SDK זרימה קבלת טוקן
iOS AuthenticationServices Native (ASAuthorizationController) identityToken (JWT)
Android אין SDK ייעודי OAuth 2.0 PKCE דרך Custom Tab קוד הרשאה, החלפה לטוקנים
Web Apple JS SDK הפנייה/חלון קופץ OAuth 2.0 קוד הרשאה, החלפה לטוקנים

ה-SDK ה-native של iOS עובד פי 3 מהר יותר מהזרימה ה-web ב-Android ואינו דורש פתיחת דפדפן. זה מפחית את זמן ההשהיה בכניסה ב-70% ומשפר את חוויית המשתמש.

תרחישים אופייניים ופתרונות

תרחיש בעיה פתרון
הרשאה ראשונה דוא"ל לא נשמר בשרת שמרו דוא"ל ו-fullName מיד לאחר ההרשאה
כניסה מחדש Apple לא מספקת דוא"ל השתמשו בדוא"ל שנשמר
ביטול גישה המשתמש נשאר מחובר בדקו getCredentialState בעת ההפעלה ובכניסה

מה כלול בעבודת האינטגרציה

אנו מספקים מחזור עבודה מלא:

  • ניתוח מערכת האימות הנוכחית ודרישות ה-App Store.
  • עיצוב אינטגרציה: בחירת גישה (iOS native + אימות שרת).
  • יישום iOS: הגדרת קוד Swift, טיפול בנתוני הרשאה, שמירת נתונים.
  • צד שרת: אימות JWT, אחסון דוא"ל ממסר, ניהול טוקני רענון.
  • אינטגרציה ל-Android ו-Web (אופציונלי).
  • בדיקת כל התרחישים: הרשאה ראשונה, כניסה מחדש, ביטול גישה.
  • פריסה וניטור.
  • תיעוד והוראות תפעול.
  • תמיכה באחריות לאחר ההשקה.

תהליך ולוח זמנים

התהליך שלנו כולל שלבים מניתוח ועד תמיכה. שלב הניתוח אורך 1-2 ימים, היישום 5-10 ימים, הבדיקות 2-3 ימים. לוח זמנים כולל: בין שבוע לשבועיים בהתאם למורכבות ולצורך בתמיכה ב-Android/Web. עם למעלה מ-30 פרויקטים שהושלמו, צברנו ניסיון שמונע טעויות אופייניות ומאיץ את האינטגרציה ב-40% בהשוואה ליישום עצמי. צוותים חוסכים עד 40% מזמן הפיתוח באמצעות הפתרון שלנו.

אנו מבטיחים עמידה בסעיף 4.2 של הנחיות סקירת ה-App Store – האפליקציה שלכם לא תידחה בגלל חוסר בכניסה עם Apple.

צריכים אינטגרציה של הרשאת Apple ID? הזמינו את השירות – צרו קשר לייעוץ. השלמנו למעלה מ-30 אינטגרציות כאלה עבור לקוחות במגוון תעשיות. קבלו אינטגרציה מהירה ואמינה במפתח אחד.