หากต้องการผสานรวม Smart Lock สําหรับรหัสผ่านลงในแอป 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()
และเริ่ม แสดงความตั้งใจเพื่อแจ้งให้ผู้ใช้เลือกบัญชี จากนั้นโทรgetParcelableExtra(Credential.EXTRA_KEY)
เพื่อรับคําแนะนําในการลงชื่อเข้าใช้ - หากรหัสผู้ใช้ของคําแนะนําตรงกับผู้ใช้ที่มีอยู่ ให้กรอกแบบฟอร์มลงชื่อเข้าใช้ไว้ล่วงหน้าและอนุญาตให้ผู้ใช้ป้อนรหัสผ่านเพื่อลงชื่อเข้าใช้
- หากรหัสผู้ใช้ของคําแนะนําไม่ตรงกับผู้ใช้ที่มีอยู่ ให้กรอกแบบฟอร์มลงชื่อสมัครใช้พร้อมรหัสและชื่อของผู้ใช้ไว้ล่วงหน้า และอนุญาตให้ผู้ใช้สร้างบัญชีใหม่
- โทรหา
-
หลังจากผู้ใช้ลงชื่อเข้าใช้หรือสร้างบัญชีเรียบร้อยแล้ว ให้บันทึกรหัสผู้ใช้และรหัสผ่านด้วย
CredentialsClient.save()
หากผู้ใช้ลงชื่อเข้าใช้กับผู้ให้บริการข้อมูลประจําตัวแบบรวมศูนย์ เช่น Google Sign-In ให้สร้างออบเจ็กต์
Credential
โดยใช้อีเมล' ของผู้ใช้เป็นรหัสและระบุผู้ให้บริการข้อมูลประจําตัวด้วยsetAccountType
ออกจากระบบ
- เมื่อผู้ใช้ออกจากระบบ ให้เรียกใช้
CredentialsClient.disableAutoSignIn()
เพื่อป้องกันไม่ให้ผู้ใช้ลงชื่อเข้าใช้อีกครั้งทันที การปิดใช้การลงชื่อเข้าใช้อัตโนมัติยังช่วยให้ผู้ใช้สลับใช้บัญชีได้อย่างง่ายดาย เช่น ใช้บัญชีงานกับบัญชีส่วนตัว หรือระหว่างบัญชีในอุปกรณ์ที่แชร์โดยไม่ต้องป้อนข้อมูลการลงชื่อเข้าใช้ใหม่
หากพร้อมผสานรวม Smart Lock สําหรับรหัสผ่านเข้ากับแอป มาเริ่มต้นกันเลย