หากต้องการเปิดใช้ฟีเจอร์ลงชื่อเข้าใช้ด้วย One Tap สําหรับผู้ใช้ที่กลับมา คุณสามารถแจ้งให้ผู้ใช้บันทึกรหัสผ่านกับ Google ผู้ใช้จะลงชื่อเข้าใช้ด้วยรหัสผ่านที่บันทึกไว้ในแอปและบนเว็บได้
เมื่อคุณเริ่มขั้นตอนการบันทึกรหัสผ่าน ผู้ใช้จะเห็นกล่องโต้ตอบในแผงด้านล่าง ซึ่งให้เลือกว่าต้องการบันทึกรหัสผ่านหรือไม่ และต้องการบันทึกรหัสผ่านไปยังบัญชี Google บัญชีใด
เปิดกล่องโต้ตอบในแผงด้านล่างสำหรับบันทึกรหัสผ่าน
คุณควรเปิดกล่องโต้ตอบบันทึกรหัสผ่านหลังจากที่ตรวจสอบสิทธิ์ชื่อผู้ใช้และรหัสผ่านกับแบ็กเอนด์แล้ว เก็บข้อมูลเข้าสู่ระบบไว้ในหน่วยความจําขณะตรวจสอบสิทธิ์ หลังจากยืนยันว่าข้อมูลเข้าสู่ระบบถูกต้องแล้ว ให้เปิดกล่องโต้ตอบการบันทึกโดยทำดังนี้
สร้างออบเจ็กต์
SignInPassword
ใหม่ โดยควรเริ่มต้นด้วยรหัสผู้ใช้ที่ใช้กับบริการของคุณ (เช่น ชื่อผู้ใช้หรืออีเมล) และรหัสผ่านที่ต้องการบันทึกprivate static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */ private void savePassword() { SignInPassword signInPassword = new SignInPassword(userId, password); ...
สร้างออบเจ็กต์
SavePasswordRequest
SavePasswordRequest savePasswordRequest = SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
รับ
PendingIntent
เพื่อแสดงกล่องโต้ตอบการบันทึกรหัสผ่านจากIdentity.getCredentialSavingClient
แล้วเปิดใช้งานขั้นตอนต่อไปนี้Identity.getCredentialSavingClient(activity) .savePassword(savePasswordRequest) .addOnSuccessListener( result -> { startIntentSenderForResult( result.getPendingIntent().getIntentSender(), REQUEST_CODE_GIS_SAVE_PASSWORD, /* fillInIntent= */ null, /* flagsMask= */ 0, /* flagsValue= */ 0, /* extraFlags= */ 0, /* options= */ null); })
จัดการผลลัพธ์การบันทึกรหัสผ่าน
จัดการผลลัพธ์ของขั้นตอนการบันทึกรหัสผ่านใน onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_GIS_SAVE_PASSWORD) {
if (resultCode == Activity.RESULT_OK) {
/* password was saved */
} else if (resultCode == Activity.RESULT_CANCELED) {
/* password saving was cancelled */
}
}
}
private ActivityResultLauncher<IntentSenderRequest> savePasswordHandler =
registerForActivityResult(new ActivityResultContracts.StartIntentSenderForResult(), result -> {
// handle intent result here
});