תהליך השילוב של Android

כדי לשלב את Smart Lock לסיסמאות באפליקציה ל-Android, צריך להוסיף קריאות ל-Credentials API בתהליך ההפעלה והכניסה של האפליקציה. בתרשים הבא מוצג התהליך של אפליקציה אופיינית ל-Android שמשתמשת ב-Smart Lock לסיסמאות.

יש הרבה דרכים לשלב את Smart Lock לסיסמאות, והפרטים של השילוב תלויים במבנה האפליקציה ובחוויית המשתמש, אבל ברוב האפליקציות מומלץ לבצע את התהליך הבא. באפליקציות שמשתמשות בתהליך הזה יש כמה יתרונות לחוויית המשתמש:

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

תרשים של תהליך הכניסה ל-Smart Lock

אחזור פרטי הכניסה

  1. כשהאפליקציה מופעלת, אם אף משתמש לא מחובר עדיין לחשבון, צריך להתקשר אל CredentialsClient.request().
  2. אם פעולת Task מסתיימת בהצלחה, יש לקבל את פרטי הכניסה של המשתמש דרך getResult().getCredential() ולהשתמש בהם כדי להיכנס.
  3. אם השדה Task נכשל והחריג הוא מופע של ResolvableApiException ו-getStatusCode() מחזיר RESOLUTION_REQUIRED, נדרש קלט של משתמש כדי לבחור פרטי כניסה. צריך להפעיל את startResolutionForResult() כדי לבקש מהמשתמש לבחור חשבון שמור, ואז להתקשר ל-getParcelableExtra(Credential.EXTRA_KEY) כדי לקבל את פרטי הכניסה של המשתמש ולהשתמש בהם כדי להיכנס.

שמירת פרטי הכניסה

  1. אם ה-Task נכשל עם ApiException ו-getStatusCode() מחזיר SIGN_IN_REQUIRED, למשתמש אין פרטי כניסה שמורים ועליו להיכנס או להירשם באופן ידני באמצעות תהליך הכניסה או ההרשמה הנוכחיים שלך. אחרי שהמשתמשים ישלימו את הכניסה, תוכלו לתת להם הזדמנות לשמור את פרטי הכניסה שלהם כדי לאחזר אותם בעתיד (שלב 5).

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

    1. אפשר להתקשר אל CredentialsClient.getHintPickerIntent() ולהתחיל מתוך הכוונה כדי לבקש מהמשתמש לבחור חשבון, ולאחר מכן להתקשר אל getParcelableExtra(Credential.EXTRA_KEY) כדי לקבל את הרמז לכניסה.
    2. אם מזהה המשתמש של הרמז תואם למשתמש קיים, יש למלא את טופס הכניסה מראש ולאפשר למשתמש להזין את הסיסמה כדי להיכנס.
    3. אם מזהה המשתמש של הרמז לא תואם למשתמש קיים, יש למלא מראש בטופס ההרשמה את המזהה והשם של המשתמש ולאפשר למשתמש ליצור חשבון חדש.
  2. אחרי שהמשתמש נכנס או יוצר חשבון בהצלחה, צריך לשמור את מזהה המשתמש והסיסמה באמצעות CredentialsClient.save().

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

יציאה

  1. כשהמשתמש יצא מהחשבון, צריך לבצע קריאה ל-CredentialsClient.disableAutoSignIn() כדי למנוע כניסה מיידית של המשתמש לחשבון. השבתה של הכניסה האוטומטית מאפשרת למשתמשים לעבור בין חשבונות בקלות – למשל, בין חשבון לצורכי עבודה לחשבון לשימוש אישי, או בין חשבונות במכשירים משותפים – בלי שיצטרכו להזין מחדש את פרטי הכניסה שלהם.

רוצה לשלב את Smart Lock לסיסמאות באפליקציה? התחל בעבודה.