התכונה שחזור פרטי כניסה בכלי לניהול פרטי כניסה מאפשרת למשתמשים לשחזר את החשבונות שלהם באפליקציות כשהם מגדירים מכשיר חדש. ממשק ה-API הזה נמצא בתצוגה מקדימה למפתחים והוא זמין בכל המכשירים עם Android מגרסה 9 ואילך ועם Google Play Services (GMS) Core מגרסה 242200000 ואילך. היתרונות של התכונה 'שחזור פרטי הכניסה' כוללים:
- חוויית משתמש חלקה: המשתמשים יכולים לשחזר את החשבון שלהם באפליקציה בלי להיכנס ידנית לכל אפליקציה בנפרד.
- שיפור המעורבות של המשתמשים: אם המשתמשים יכולים לשחזר את החשבון שלהם כשהם מגדירים מכשיר חדש, סביר יותר שהם ימשיכו להשתמש באפליקציה שלכם.
- פחות מאמץ פיתוח: התכונה 'שחזור פרטי כניסה' משולבת במנהל פרטי הכניסה, כך שמפתחים שכבר תומכים במפתחות גישה יכולים להוסיף יכולות שחזור של פרטי כניסה.
איך זה עובד
אתם יכולים להשתמש באפשרות 'שחזור פרטי הכניסה' כדי ליצור, לקבל ולנקות את פרטי הכניסה הרלוונטיים.
- יצירת פרטי כניסה לשחזור: כשמשתמש נכנס לאפליקציה שלכם, צריך ליצור פרטי כניסה לשחזור שמשויכים לחשבון שלו. האישורים האלה מאוחסנים באופן מקומי ומסונכרנים עם הענן אם המשתמש הפעיל את הגיבוי של Google ויש אפשרות להצפנה מקצה לקצה (אפליקציות יכולות לבחור שלא לסנכרן עם הענן)
- קבלת אישור השחזור: כשהמשתמש מגדיר מכשיר חדש, האפליקציה יכולה לבקש את אישור השחזור ממנהל האישורים. כך תוכלו להכניס את המשתמשים לחשבון באופן אוטומטי בלי לדרוש מהם להזין מידע נוסף.
- ניקוי פרטי הכניסה לשחזור: כשמשתמש מתנתק מהאפליקציה, צריך למחוק את פרטי הכניסה המשויכים לשחזור.
התכונה 'שחזור פרטי הכניסה' יכולה להשתלב בצורה חלקה עם מערכות קצה עורפי שכבר הטמיעו מפתחות גישה. התאימות הזו נובעת מהעובדה שמפתחות גישה ומפתחות שחזור (סוג האישורים שמשמשים בתכונה 'שחזור אישורים') פועלים לפי אותן מפרטים טכניים בסיסיים. ההתאמה הזו מבטיחה שתהליך שחזור פרטי הכניסה יוכל לאחזר ביעילות את פרטי הכניסה של המשתמשים שמאוחסנים במערכות שמופעל בהן מפתחות גישה, ולשחזר אותם. כך מתקבלת חוויה עקבית וידידותית למשתמש בפלטפורמות שונות ובשיטות אימות שונות.
הטמעה
ה-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 = fetchAuthenticationJson() // Create the GetRestoreCredentialRequest object val options = GetRestoreCredentialOption(authenticationJson) val getRequest = GetCredentialRequest(listOf(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
בתוך הקריאה החוזרת onRestore
. כך מוודאים שפרטי הכניסה של האפליקציה ישוחזרו מיד אחרי שנתוני האפליקציה ישוחזרו.