כדי לשלב את Smart Lock לסיסמאות באפליקציית Android, צריך להוסיף קריאות ל-Credentials API בתהליך ההפעלה של האפליקציה ובכניסה אליה. בתרשים הבא מוצגת הזרימה של אפליקציה אופיינית ל-Android שמשתמשת ב-Smart Lock לסיסמאות.
יש דרכים רבות לשלב את Smart Lock לסיסמאות, והפרטים של השילוב תלויים במבנה ובחוויית המשתמש של האפליקציה. עם זאת, התהליך הבא מומלץ לרוב האפליקציות. לאפליקציות שמשתמשות בתהליך הזה יש את היתרונות הבאים:
- משתמשים קיימים בשירות שאתם משתמשים בהם עם פרטי כניסה יחידים נכנסים לחשבון באופן מיידי, והם יועברו ישירות לתצוגה המפורטת כשהם מחוברים לחשבון.
- משתמשים ששמרו מספר פרטי כניסה או השביתו את הכניסה האוטומטית, צריכים להגיב לתיבת דו-שיח אחת בלבד לפני שהם עוברים לתצוגה המפורטת של האפליקציה.
- משתמשים שאין להם פרטי כניסה שמורים או שלא נרשמו עדיין, יכולים לבחור את השם והאימייל שלהם בהקשה אחת, ולשלוח אותם בצורה חכמה לתצוגת הכניסה או לתצוגת ההרשמה, כשהפרטים האלה ממולאים מראש.
- כשהמשתמשים יוצאים מהחשבון, האפליקציה מבטיחה שהם לא ייכנסו אוטומטית לחשבון.
אחזור פרטי כניסה
- כשהאפליקציה מתחילה לפעול, אם משתמשים לא מחוברים לחשבון, אפשר להתקשר למספר
CredentialsClient.request()
. - אם הפעולה
Task
מצליחה, צריך להשיג את פרטי הכניסה של המשתמש ל-getResult().getCredential()
ולהשתמש בהם כדי להיכנס. - אם ה-
Task
נכשל והחריג הוא מופע שלResolvableApiException
ו-getStatusCode()
מחזיר אתRESOLUTION_REQUIRED
, יש להזין פרטי כניסה כדי לבחור פרטי כניסה. צריך להתקשר אלstartResolutionForResult()
כדי לבקש מהמשתמש לבחור חשבון שמור, ואז להתקשר אלgetParcelableExtra(Credential.EXTRA_KEY)
כדי לקבל את פרטי הכניסה של המשתמש ולהשתמש בהם כדי להיכנס.
שמירת פרטי הכניסה
אם
Task
נכשל עםApiException
ו-getStatusCode()
מחזירSIGN_IN_REQUIRED
, למשתמש אין פרטי כניסה שמורים והוא חייב להיכנס או להירשם באופן ידני באמצעות תהליך הכניסה או תהליך ההרשמה הנוכחיים. אחרי שהמשתמש יסיים בהצלחה את הכניסה לחשבון, תהיה לך אפשרות לתת למשתמש הזדמנות לשמור את פרטי הכניסה שלו לצורך אחזור עתידי (שלב 5).ניתן לעזור למשתמש להיכנס או להירשם מהר יותר בקלות רבה יותר על ידי אחזור טיפים לכניסה, כמו כתובת האימייל של המשתמש. המשתמש יכול לבחור את הרמז ולדלג על הקלדת פרטי הכניסה שלו. אם האפליקציה שלך מחייבת משתמשים להיכנס לחשבון, יש לך אפשרות לבחור לאחזר רמזים מיד אחרי שבקשת הכניסה הראשונית תיכשל (אחרת, תהיה לך אפשרות להמתין עד שהמשתמש יתחיל את תהליך הכניסה או ההרשמה).
- יש להתקשר אל
CredentialsClient.getHintPickerIntent()
ולהתחיל בכוונה לבקש מהמשתמש לבחור חשבון, ולאחר מכן להתקשר למספרgetParcelableExtra(Credential.EXTRA_KEY)
כדי לקבל את הרמז לכניסה. - אם מזהה הרמז תואם למשתמש קיים, עליך למלא איתו מראש את טופס הכניסה ולתת למשתמש להזין את הסיסמה כדי להיכנס.
- אם מזהה הרמז לא תואם למשתמש קיים, יש למלא מראש את טופס ההרשמה עם המזהה והשם של המשתמש, ולאפשר למשתמש ליצור חשבון חדש.
- יש להתקשר אל
-
אחרי שהמשתמש נכנס לחשבון או יוצר חשבון, שומרים את מזהה המשתמש והסיסמה עם
CredentialsClient.save()
.אם המשתמש נכנס עם ספק זהות מאוחד, כמו כניסה באמצעות חשבון Google, צריך ליצור את האובייקט
Credential
עם כתובת האימייל של המשתמש כמזהה ולציין את ספק הזהויות באמצעותsetAccountType
.
יציאה
- כשהמשתמש עוזב את החשבון, יש להתקשר אל
CredentialsClient.disableAutoSignIn()
כדי למנוע ממנו להיכנס באופן מיידי. השבתת הכניסה האוטומטית מאפשרת גם למשתמשים לעבור בין חשבונות בקלות - לדוגמה, בין חשבון עבודה לחשבון אישי, או בין חשבונות במכשירים משותפים - מבלי להזין מחדש את פרטי הכניסה שלהם.
מוכנים לשלב את Smart Lock לסיסמאות באפליקציה? התחל בעבודה.