התכונה שחזור פרטי הכניסה של מנהל פרטי הכניסה מאפשרת למשתמשים לשחזר את חשבונות האפליקציות שלהם כשהם מגדירים מכשיר חדש. ממשק ה-API הזה נמצא בתצוגה מקדימה למפתחים וזמין בכל המכשירים עם Android מגרסה 9 ואילך ועם Google Play Services (GMS) Core מגרסה 242200000 ואילך. היתרונות של התכונה Restore Credentials כוללים:
- חוויית משתמש חלקה: המשתמשים יכולים לשחזר את חשבון האפליקציה שלהם בלי להיכנס ידנית לכל אפליקציה בנפרד.
- הגברת ההתעניינות של המשתמשים: סביר יותר שמשתמשים ימשיכו להשתמש באפליקציה שלכם אם הם יוכלו לשחזר את החשבון שלהם כשהם מגדירים מכשיר חדש.
- צמצום מאמצי הפיתוח: התכונה 'שחזור פרטי כניסה' משולבת עם Credential Manager, כך שמפתחים שכבר תומכים במפתחות גישה יכולים להוסיף יכולות לשחזור פרטי כניסה.
איך זה עובד
אפשר להשתמש ב-Restore Credentials כדי ליצור, לקבל ולמחוק את פרטי הכניסה הרלוונטיים.
- יצירת פרטי הכניסה לשחזור: כשהמשתמש נכנס לאפליקציה, יוצרים פרטי כניסה לשחזור שמשויכים לחשבון שלו. פרטי הכניסה האלה מאוחסנים באופן מקומי ומסונכרנים עם הענן אם המשתמש הפעיל את Google Backup והצפנה מקצה לקצה זמינה (אפליקציות יכולות לבטל את הסנכרון עם הענן).
- קבלת פרטי הכניסה לשחזור: כשהמשתמש מגדיר מכשיר חדש, האפליקציה יכולה לבקש את פרטי הכניסה לשחזור ממנהל פרטי הכניסה. כך תוכלו להיכנס לחשבון של המשתמש באופן אוטומטי בלי צורך בהזנה נוספת.
- ניקוי פרטי הכניסה לשחזור: כשהמשתמש יוצא מהאפליקציה, צריך למחוק את פרטי הכניסה לשחזור המשויכים.
התכונה 'שחזור פרטי הכניסה' יכולה להשתלב בצורה חלקה במערכות לקצה העורפי שכבר הטמיעו מפתחות גישה. התאימות הזו נובעת מהעובדה שגם מפתחות הגישה וגם מפתחות השחזור (סוג פרטי הכניסה שבו נעשה שימוש בתכונה 'שחזור פרטי הכניסה') פועלים לפי אותן מפרטים טכניים בסיסיים. ההתאמה הזו מבטיחה שתהליך שחזור פרטי הכניסה יוכל לאחזר ביעילות את פרטי הכניסה של המשתמשים ששמורים במערכות שתומכות במפתחות גישה, ולהחזיר אותם לשימוש, וכך לספק חוויה עקבית ונוחה למשתמש בפלטפורמות ובשיטות אימות שונות.
הטמעה
ממשק Restore Credentials API זמין דרך הספרייה של Credential Manager ב-Jetpack. תחילה, מבצעים את הפעולות הבאות:
מוסיפים את התלות ב-Credential Manager לפרויקט.
// build.gradle.kts implementation("androidx.credentials:credentials:1.5.0-alpha03")
יוצרים אובייקט
CreateRestoreCredentialRequest
.קוראים ל-method
createCredential()
באובייקטCredentialManager
.val credentialManager = CredentialManager.create(context) // On a successful authentication create a Restore Key // Pass in the context and CreateRestoreCredentialRequest object val response = credentialManager.createCredential(context, createRestoreRequest)
פרטי הכניסה לשחזור שנוצרים הם סוג של פרטי כניסה ל-WebAuthn, שנקראים מפתח שחזור.
כשהמשתמש מגדיר מכשיר חדש, צריך להפעיל את השיטה
getCredential()
באובייקטCredentialManager
.// Fetch the Authentication JSON from server val authenticationJson = ... // Create the GetRestoreCredentialRequest object val options = GetRestoreCredentialOption(authenticationJson) val getRequest = GetCredentialRequest(Immutablelist.of(options)) // The restore key can be fetched in two scenarios to // 1. On the first launch of app on the device, fetch the Restore Key // 2. In the onRestore callback (if the app implements the Backup Agent) val response = credentialManager.getCredential(context, getRequest)
כשהמשתמש יוצא מהחשבון באפליקציה, צריך להפעיל את השיטה
clearCredentialState()
באובייקטCredentialManager
.// Create a ClearCredentialStateRequest object val clearRequest = ClearCredentialStateRequest(TYPE_CLEAR_RESTORE_CREDENTIAL) // On user log-out, clear the restore key val response = credentialManager.clearCredentialState(clearRequest)
אם אתם משתמשים בסוכנות גיבוי, צריך לבצע את החלק getCredential
בתוך הקריאה החוזרת (callback) onRestore
. כך מוודאים שפרטי הכניסה של האפליקציה ישוחזרו מיד אחרי שחזור נתוני האפליקציה.