แท็บการตรวจสอบสิทธิ์มีขั้นตอนการตรวจสอบสิทธิ์ที่ปลอดภัยและง่ายดายสำหรับใช้ในแอป Android การสร้างและเปิดใช้งาน AuthTabIntent
จะช่วยให้คุณเรียกใช้แท็บที่กำหนดเองแบบพิเศษที่ออกแบบมาเพื่อจัดการประสบการณ์การตรวจสอบสิทธิ์จากต้นทางถึงปลายทางได้ แท็บนี้ไม่มีฟีเจอร์มากมายและมีความจำกัด จึงช่วยให้ผู้ใช้มีสมาธิกับงานที่ทำอยู่ เมื่อเสร็จสิ้น แท็บจะโทรกลับไปยังแอปพลิเคชันพร้อมผลลัพธ์โดยใช้ https หรือสคีมาที่กำหนดเอง


ตั้งแต่ Chrome 132 แท็บการตรวจสอบสิทธิ์จะแทนที่การผสานรวมการตรวจสอบสิทธิ์ของแท็บที่กำหนดเองที่มีอยู่ได้โดยตรง สําหรับผู้ใช้ที่อุปกรณ์ไม่รองรับแท็บการตรวจสอบสิทธิ์ ระบบจะเปลี่ยนไปใช้แท็บที่กําหนดเองโดยอัตโนมัติ การย้ายข้อมูลจากแท็บที่กำหนดเองไปยังแท็บการตรวจสอบสิทธิ์ทำได้โดยการแก้ไขโค้ด 2-3 บรรทัด
วิธีการทำงาน
เมื่อใช้แท็บการตรวจสอบสิทธิ์ แอปไคลเอ็นต์จะเปิดแท็บที่กำหนดเองเฉพาะซึ่งแสดงหน้าต่างเบราว์เซอร์ที่โหลด URL ที่มีหน้าการตรวจสอบสิทธิ์ที่คาดไว้ หลังจากเสร็จสิ้นแล้ว แท็บการตรวจสอบสิทธิ์จะแสดงผลการตรวจสอบสิทธิ์โดยใช้การเรียกกลับ
หลังจากการตรวจสอบสิทธิ์แล้ว เมื่อมีการไปยัง URI เปลี่ยนเส้นทางของคอลแบ็กที่ระบุไว้ก่อนหน้านี้ ระบบจะบันทึกการเปลี่ยนเส้นทางและส่งกลับไปยังแอปพลิเคชันไคลเอ็นต์โดยใช้คอลแบ็ก สําหรับการเปลี่ยนเส้นทางที่ใช้สคีม https เบราว์เซอร์จะยืนยันว่าโดเมนการเปลี่ยนเส้นทางและแอปไคลเอ็นต์เป็นของผู้ให้บริการรายเดียวกันโดยใช้ Digital Asset Links
ไคลเอ็นต์จะได้รับ URI ที่ไปยังส่วนต่างๆ ด้วยรูปแบบการเปลี่ยนเส้นทาง (หรือสําหรับ https ให้เปลี่ยนเส้นทางโฮสต์และเส้นทาง) โดยใช้การเรียกกลับที่ระบุ ข้อมูลนี้รวมถึงรหัสผลลัพธ์และข้อมูลอื่นๆ ที่อินเทอร์เฟซการตรวจสอบสิทธิ์ให้ คุณสามารถใช้ข้อมูลนี้เพื่อยืนยันการตรวจสอบสิทธิ์หรือจัดการสถานการณ์ที่ไม่สําเร็จ
เหตุผลที่ควรใช้แท็บการตรวจสอบสิทธิ์
ก่อนเปิดตัวแท็บการตรวจสอบสิทธิ์ คุณสามารถใช้ Intent แท็บที่กำหนดเองมาตรฐานเพื่อขับเคลื่อนขั้นตอนการตรวจสอบสิทธิ์ได้ เราขอแนะนำให้ใช้แท็บการตรวจสอบสิทธิ์เนื่องจากมีความปลอดภัยมากขึ้น ใช้งานได้ง่ายขึ้น และแยกข้อมูลภายในบางส่วนสำหรับการตรวจสอบสิทธิ์ออกจากโค้ดไคลเอ็นต์ ด้วยเหตุนี้ คุณจึงพบว่าแท็บการตรวจสอบสิทธิ์มอบประสบการณ์การใช้งานที่ดีกว่า
การรักษาความปลอดภัยที่ดียิ่งขึ้น
ในการใช้งานแท็บที่กำหนดเองทั่วไป จะต้องมี Intent เพื่อรับข้อมูลจากหน้าต่างเบราว์เซอร์ที่จัดการการตรวจสอบสิทธิ์ ซึ่งต้องใช้โค้ดเพิ่มเติมและทำให้แอปของคุณอาจถูกแทรกแซง เมื่อใช้แท็บการตรวจสอบสิทธิ์ ระบบจะรับข้อมูลโดยใช้การเรียกกลับที่มีการโอนข้อมูลโดยตรงระหว่าง Android API กับแอปไคลเอ็นต์
ประสบการณ์การใช้งานที่มีประสิทธิภาพ
ในแท็บที่กำหนดเอง ผู้ใช้จะมีสิทธิ์เข้าถึงฟีเจอร์เพิ่มเติมในเบราว์เซอร์ที่อาจไม่ต้องการสำหรับขั้นตอนการตรวจสอบสิทธิ์ แท็บการตรวจสอบสิทธิ์จะให้ประสบการณ์การใช้งานที่เรียบง่ายโดยนำตัวเลือกการปรับแต่งส่วนใหญ่ที่มีในแท็บที่กำหนดเองมาตรฐานออก สำหรับเบราว์เซอร์ Chrome ฟีเจอร์นี้รวมถึงปุ่มย่อ เมนูตามบริบทที่กดค้างไว้ และการแตะเพื่อค้นหา รวมถึงรายการเมนูสำหรับเปิดใน Chrome, บุ๊กมาร์ก, ดาวน์โหลดและแชร์ และเพิ่มลงในหน้าจอหลัก
แท็บการตรวจสอบสิทธิ์จะยังคงมีฟีเจอร์สำหรับเบราว์เซอร์ในการป้อนรหัสผ่านและการชำระเงินที่บันทึกไว้ก่อนหน้านี้โดยอัตโนมัติ ไปยังหน้าก่อนหน้าหรือถัดไป รีเฟรช แสดงข้อมูลหน้าเว็บ ขอหน้าเว็บเวอร์ชันเดสก์ท็อป และแสดงคำแปล
การแยกข้อมูล
การใช้แท็บการตรวจสอบสิทธิ์เพียงอย่างเดียวจะช่วยลดความจำเป็นในการใช้ Intent เพื่อรับข้อมูลจากเบราว์เซอร์ รวมถึงตัวกรอง Intent ใน AndroidManifest.xml
ซึ่งก่อนหน้านี้จำเป็นต้องใช้เพื่อให้การตรวจสอบสิทธิ์ทำงานได้อย่างถูกต้อง ซึ่งจะลดความซับซ้อนในฝั่งไคลเอ็นต์ ฟีเจอร์บางอย่างเหล่านี้จะยังคงรวมอยู่ในโค้ดไคลเอ็นต์เพื่อให้ใช้งานร่วมกับแท็บที่กำหนดเองได้แบบย้อนหลังในกรณีที่แท็บการตรวจสอบสิทธิ์ไม่พร้อมใช้งานในอุปกรณ์ของผู้ใช้
ใช้แท็บการตรวจสอบสิทธิ์
แท็บการตรวจสอบสิทธิ์ต้องใช้ไลบรารีการตรวจสอบสิทธิ์เบราว์เซอร์ AndroidX คุณสามารถเพิ่มไลบรารีเบราว์เซอร์ AndroidX ในส่วน Dependency ของไฟล์ build.gradle
ของโปรเจ็กต์ API พร้อมใช้งานในรุ่นอัลฟ่า เพิ่มโค้ดต่อไปนี้ลงในไฟล์บิลด์
dependencies {
implementation 'androidx.browser:browser:1.9.0-alpha01'
}
ก่อนเปิดแท็บการตรวจสอบสิทธิ์ ให้ประกาศ ActivityResultLauncher
ที่ใช้ ActivityResultCaller
และ ActivityResultCallback
ซึ่งต้องดำเนินการก่อนสร้างกิจกรรมหรือข้อมูลโค้ด
// In your activity
private final ActivityResultLauncher<Intent> mLauncher =
AuthTabIntent.registerActivityResultLauncher(this, this::handleAuthResult);
private void handleAuthResult(AuthResult result) {
String message = switch (result.resultCode) {
case AuthTabIntent.RESULT_OK -> "Received auth result.";
case AuthTabIntent.RESULT_CANCELED -> "AuthTab canceled.";
case AuthTabIntent.RESULT_VERIFICATION_FAILED -> "Verification failed.";
case AuthTabIntent.RESULT_VERIFICATION_TIMED_OUT -> "Verification timed out.";
}
if (result.resultCode == AuthTabIntent.RESULT_OK) {
message += " Uri: " + result.resultUri;
}
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
จากนั้นใช้ AuthTabIntent.Builder
เพื่อสร้าง AuthTabIntent
แล้วเรียกใช้เมธอด launch
วิธีการเปิดใช้ยอมรับชุดพารามิเตอร์ชุดใดชุดหนึ่งต่อไปนี้ตามรูปแบบที่ต้องการ
redirectScheme: สําหรับรูปแบบการเปลี่ยนเส้นทางที่กําหนดเอง เบราว์เซอร์จะเปลี่ยนเส้นทางและแสดงผล URI ที่มีรูปแบบที่ระบุ
redirectHost, redirectPath: สำหรับรูปแบบการเปลี่ยนเส้นทาง https API ต้องใช้โฮสต์และเส้นทางแยกต่างหากเพื่อให้เบราว์เซอร์ตรวจหาการเปลี่ยนเส้นทางและแสดงผล URI เมื่อใช้ https คุณจะต้องยืนยันลิงก์เนื้อหาดิจิทัล
private void launchAuthTab() {
AuthTabIntent authTabIntent = new AuthTabIntent.Builder.build();
authTabIntent.launch(mLauncher, Uri.parse("https://www.example.com/auth"), "mycustomscheme");
}
private void launchAuthTabHttps() {
String host = "your_host";
String path = "your_path";
AuthTabIntent authTabIntent = new AuthTabIntent.Builder.build();
authTabIntent.launch(mLauncher, Uri.parse("https://www.example.com/auth", host, path);
}
ย้ายข้อมูลจากแท็บที่กำหนดเองไปยังแท็บการตรวจสอบสิทธิ์
อัปเดตการติดตั้งใช้งานการตรวจสอบสิทธิ์ Custom Tab ที่มีอยู่โดยการแก้ไข Intent ของ Custom Tab เป็น Intent ของแท็บการตรวจสอบสิทธิ์ใหม่ หลังจากเพิ่มโค้ดแล้ว ให้ค้นหา Intent แท็บที่กำหนดเองและแก้ไขเป็น Intent แท็บการตรวจสอบสิทธิ์ใหม่
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build();
customTabsIntent.launchUrl(context, uri)
// change to -->
AuthTabIntent authTabIntent = new AuthTabIntent.Builder.build();
authTabIntent.launch(mLauncher, Uri.parse("https://www.example.com/auth", "mycustomscheme");
/* - OR - */
authTabIntent.launch(mLauncher, Uri.parse("https://www.example.com/auth", host, path);
เปลี่ยนไปใช้แท็บที่กำหนดเอง
การติดตั้งใช้งานบางอย่างอาจต้องมีการตรวจสอบสิทธิ์ในกรณีที่อุปกรณ์ของผู้ใช้ไม่พร้อมใช้งานแท็บการตรวจสอบสิทธิ์ เช่น กรณีนี้อาจเกิดขึ้นหากเบราว์เซอร์เริ่มต้นไม่รองรับแท็บการตรวจสอบสิทธิ์ หรือหากเวอร์ชันของเบราว์เซอร์เริ่มต้นไม่อยู่ในระดับที่กำหนด ในกรณีเหล่านี้ Intent ของแท็บการตรวจสอบสิทธิ์จะเปิดแท็บที่กำหนดเองโดยอัตโนมัติแทนสําหรับเบราว์เซอร์ที่รองรับแท็บที่กำหนดเอง
หากต้องการจัดการสถานการณ์นี้อย่างราบรื่น ให้เพิ่มการติดตั้งใช้งานแท็บการตรวจสอบสิทธิ์ขณะที่เก็บโค้ด Custom Tab ที่มีอยู่ซึ่งจัดการขั้นตอนการให้สิทธิ์ไว้เป็นทางเลือกสำรอง
ผู้ใช้ที่มีอุปกรณ์พร้อมใช้งานแท็บการตรวจสอบสิทธิ์จะเห็นขั้นตอนการใช้แท็บการตรวจสอบสิทธิ์แบบใหม่ ส่วนผู้ใช้รายอื่นๆ จะกลับไปใช้แท็บที่กำหนดเองแบบเดิม โปรดระมัดระวังในการจัดการข้อมูลที่อาจส่งไปยัง ActivityResultCallback
หรือ Intent กิจกรรม โปรดทราบว่าหากใช้ AuthTabIntent
เพื่อเปิดประสบการณ์การใช้งานสำรองและเบราว์เซอร์ปัจจุบันไม่รองรับแท็บการตรวจสอบสิทธิ์ แอปของคุณจะได้รับผลลัพธ์ Activity.RESULT_CANCELED
เมื่อปิดแท็บที่กำหนดเอง
ตัวอย่างการใช้งานแท็บการตรวจสอบสิทธิ์ที่มีการเปลี่ยนเส้นทางไปยังแท็บที่กำหนดเองมีอยู่ในไลบรารีตัวช่วยเบราว์เซอร์ Android