ขั้นตอนการผสานรวม 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() แล้วเริ่ม Intent เพื่อแจ้งให้ผู้ใช้เลือกบัญชี จากนั้นโทรไปที่ getParcelableExtra(Credential.EXTRA_KEY) เพื่อรับ คำแนะนำในการลงชื่อเข้าใช้
    2. หากรหัสผู้ใช้ของคำแนะนำตรงกับผู้ใช้ที่มีอยู่ ให้กรอกแบบฟอร์มลงชื่อเข้าใช้ล่วงหน้าและอนุญาตให้ผู้ใช้ป้อนรหัสผ่านเพื่อลงชื่อเข้าใช้
    3. หากรหัสผู้ใช้ของคำแนะนำไม่ตรงกับผู้ใช้ที่มีอยู่ ให้กรอกแบบฟอร์มลงชื่อสมัครใช้ด้วย ID และชื่อผู้ใช้ แล้วให้ผู้ใช้สร้างบัญชีใหม่
  2. หลังจากที่ผู้ใช้ลงชื่อเข้าใช้หรือสร้างบัญชีสำเร็จแล้ว ให้บันทึกรหัสผู้ใช้และรหัสผ่านด้วย CredentialsClient.save()

    หากผู้ใช้ลงชื่อเข้าใช้กับผู้ให้บริการข้อมูลประจำตัวแบบรวมศูนย์ เช่น Google Sign-In ให้สร้างออบเจ็กต์ Credential โดยใช้อีเมลของผู้ใช้เป็นรหัสและระบุผู้ให้บริการข้อมูลประจำตัวด้วย setAccountType

ออกจากระบบ

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

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