ขั้นตอนการผสานรวม 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 สําหรับรหัสผ่านเข้ากับแอป มาเริ่มต้นกันเลย