ขั้นตอนการผสานรวม 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 Sign-In ให้สร้างออบเจ็กต์ Credential โดยใช้อีเมลของผู้ใช้เป็นรหัสและระบุผู้ให้บริการข้อมูลประจำตัวด้วย setAccountType

ออกจากระบบ

  1. เมื่อผู้ใช้ออกจากระบบ ให้โทรหา CredentialsClient.disableAutoSignIn() เพื่อป้องกันไม่ให้ผู้ใช้ลงชื่อเข้าใช้อีกครั้งในทันที การปิดใช้การลงชื่อเข้าใช้อัตโนมัติยังช่วยให้ผู้ใช้สลับไปมาระหว่างบัญชีได้ง่ายๆ เช่น ระหว่างบัญชีที่ทำงานกับบัญชีส่วนตัว หรือระหว่างบัญชีในอุปกรณ์ที่ใช้ร่วมกัน โดยไม่ต้องป้อนข้อมูลการลงชื่อเข้าใช้อีกครั้ง

พร้อมที่จะผสานรวม Smart Lock สำหรับรหัสผ่านในแอปของคุณแล้วหรือยัง มาเริ่มต้นกันเลย