כדי לשלב את Smart Lock for Passwords באפליקציית 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()
ולהתחיל ב-Intent כדי לבקש מהמשתמש לבחור חשבון. לאחר מכן צריך לקרוא ל-getParcelableExtra(Credential.EXTRA_KEY)
כדי לקבל את הרמז לכניסה. - אם מזהה המשתמש של הרמז תואם למשתמש קיים, יש למלא את טופס הכניסה מראש ולתת למשתמש להזין את הסיסמה כדי להיכנס.
- אם מזהה המשתמש של הרמז לא תואם למשתמש קיים, יש למלא מראש בטופס ההרשמה את המזהה והשם של המשתמש ולאפשר למשתמש ליצור חשבון חדש.
- אפשר להתקשר אל
-
אחרי שהמשתמש נכנס לחשבון או יוצר חשבון, צריך לשמור את מזהה המשתמש והסיסמה באמצעות
CredentialsClient.save()
.אם המשתמש נכנס באמצעות ספק זהויות מאוחד, כמו כניסה באמצעות חשבון Google, צריך ליצור את האובייקט
Credential
עם כתובת האימייל של המשתמש בתור מזהה, ולציין את ספק הזהויות באמצעותsetAccountType
.
יציאה
- כשהמשתמש יוצא, יש לבצע קריאה ל-
CredentialsClient.disableAutoSignIn()
כדי למנוע כניסת משתמש חוזרת לחשבון באופן מיידי. השבתה של הכניסה האוטומטית גם מאפשרת למשתמשים לעבור בין חשבונות בקלות – למשל, בין חשבון לצורכי עבודה לחשבון אישי או בין חשבונות במכשירים משותפים – בלי שיצטרכו להזין מחדש את פרטי הכניסה.
רוצה לשלב את Smart Lock לסיסמאות באפליקציה שלך? התחל בעבודה.