สิ่งที่ต้องดำเนินการก่อน

ข้อกำหนดเบื้องต้นที่สำคัญสำหรับการมอบประสบการณ์การลงชื่อเข้าใช้ที่ราบรื่นด้วย เครื่องมือจัดการข้อมูลเข้าสู่ระบบในแอปและเว็บไซต์คือการสร้าง การเชื่อมโยงที่ปลอดภัยระหว่างแอปและเว็บไซต์ ซึ่งทำได้โดยใช้ไฟล์ลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ซึ่งช่วยให้ผู้ให้บริการข้อมูลเข้าสู่ระบบแชร์ข้อมูลเข้าสู่ระบบระหว่างแอป และเว็บไซต์ของคุณได้อย่างปลอดภัย ตัวอย่างเช่น เว็บไซต์สามารถประกาศว่าแชร์ข้อมูลเข้าสู่ระบบกับ แอป Android หรือเว็บไซต์อื่นได้โดยใช้ไฟล์ Digital Asset Links การใช้ Digital Asset Links ช่วยให้ผู้ใช้ได้รับประสบการณ์การลงชื่อเข้าใช้ที่ราบรื่นและใช้ ข้อมูลเข้าสู่ระบบที่บันทึกไว้เดียวกันในแอปและเว็บไซต์ที่เชื่อมโยง

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

สร้างไฟล์ชื่อ assetlinks.json โดยมีโครงสร้างดังนี้

[
    {
    "relation" : [
        "<array_of_permissions_granted_to_app>"
    ],
    "target" : {
        "namespace" : "android_app",
        "package_name" : "<android_application_package_name>",
        "sha256_cert_fingerprints" : [
            "<sha256_certificate_fingerprint_of_signing_key>"
]
    }
}
]
  • relation: อาร์เรย์ของสตริงอย่างน้อย 1 รายการที่อธิบาย ความสัมพันธ์ที่ประกาศ หากต้องการประกาศว่าแอปและเว็บไซต์ใช้ข้อมูลเข้าสู่ระบบเดียวกัน ให้ระบุความสัมพันธ์ต่อไปนี้ในอาร์เรย์

    • delegate_permission/common.handle_all_urls: ความสัมพันธ์นี้ช่วยให้ใช้ Android App Link ซึ่งช่วยให้แอป Android จัดการ URL ทั้งหมดของเว็บสำหรับโดเมนที่เฉพาะเจาะจงได้

    • delegate_permission/common.get_login_creds: ความสัมพันธ์นี้ช่วยให้แชร์ข้อมูลเข้าสู่ระบบระหว่างเว็บไซต์กับแอป Android ได้

  • target: ออบเจ็กต์ที่ระบุชิ้นงานที่การประกาศมีผล

    • target.namespace: ตั้งค่าเป็น android_app
    • target.package_name: ตั้งค่านี้เป็นชื่อแพ็กเกจที่ประกาศไว้ในไฟล์ Manifest ของแอป เช่น com.example.android
  • sha256_cert_fingerprints: ลายนิ้วมือ SHA256 ของ ใบรับรองการลงนามของแอป หากต้องการดึงฟิงเกอร์ปรินต์ SHA256 สำหรับแอป ให้ดูประกาศการเชื่อมโยงเว็บไซต์

ตัวอย่างเป้าหมายสำหรับแอปมีดังนี้

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "android_app",
      "package_name" : "com.example.android",
      "sha256_cert_fingerprints" : [
        SHA_HEX_VALUE
      ]
    }
  }
]

โฮสต์ไฟล์ลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ในตำแหน่งต่อไปนี้ในโดเมนการลงชื่อเข้าใช้ ของเว็บไซต์

```none
https://domain[:optional_port]/.well-known/assetlinks.json
```

ตัวอย่างเช่น หากโดเมนการลงชื่อเข้าใช้คือ signin.example.com ให้โฮสต์ไฟล์ที่ https://signin.example.com/.well-known/assetlinks.json

ประเภท MIME สำหรับไฟล์ Digital Asset Links ต้องเป็น JSON ตรวจสอบว่า เซิร์ฟเวอร์ส่งส่วนหัว Content-Type: application/json ในการตอบกลับ โดยตั้งค่าสถานะ HTTP เป็น 200

3. อนุญาตให้ดึงไฟล์ลิงก์เนื้อหาดิจิทัล (Digital Asset Links)

อัปเดตโฮสต์เพื่ออนุญาตให้ Google ดึงไฟล์ลิงก์เนื้อหาดิจิทัล (Digital Asset Links) เว็บไซต์ส่วนใหญ่จะอนุญาตให้ตัวแทนอัตโนมัติเรียกไฟล์ในเส้นทาง /.well-known/ เพื่อให้บริการอื่นๆ เข้าถึงข้อมูลเมตาในไฟล์เหล่านั้นได้

หากคุณมีไฟล์ robots.txt ให้อนุญาต Web Crawler ให้ดึงข้อมูล /.well-known/assetlinks.json โดยอัปเดต robots.txt ดังนี้

User-agent: *
Allow: /.well-known/

4. อัปเดตไฟล์ Manifest ของแอป

ในไฟล์ Manifest ของแอป ให้เพิ่มบรรทัดต่อไปนี้ภายใต้ <application>

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

5. กำหนดค่า Digital Asset Links สำหรับรหัสผ่าน

หากใช้เครื่องมือจัดการข้อมูลเข้าสู่ระบบสำหรับรหัสผ่าน คุณต้องทำตาม ขั้นตอนเพิ่มเติมเพื่อกำหนดค่าลิงก์ไปยังเนื้อหาดิจิทัล

เพิ่มออบเจ็กต์ที่ระบุไฟล์ assetlinks.json ที่จะโหลดในไฟล์ Manifest คุณต้องหลีกเลี่ยงเครื่องหมายอัญประกาศเดี่ยวและเครื่องหมายคำพูดที่ใช้ในสตริง ดังที่แสดงในตัวอย่างต่อไปนี้

<string name="asset_statements" translatable="false">
[{
  \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
}]
</string>

ลิงก์ https://signin.example.com/.well-known/assetlinks.json ต้องแสดงการตอบกลับ HTTP 200 และมีส่วนหัว Content-Type เป็น application/json การยืนยันจะล้มเหลวหากการตอบกลับมีการเปลี่ยนเส้นทาง HTTP 301 หรือ 302 หรือ Content-Type ที่ไม่ใช่ JSON

ตัวอย่างต่อไปนี้แสดงคำขอตัวอย่างและส่วนหัวของการตอบกลับที่คาดไว้

> GET /.well-known/assetlinks.json HTTP/1.1
> User-Agent: curl/7.35.0
> Host: signin.example.com

< HTTP/1.1 200 OK
< Content-Type: application/json

ขั้นตอนถัดไป

หลังจากเพิ่มการอ้างอิงที่จำเป็นและกำหนดค่า Digital Asset Links สำหรับ พาสคีย์แล้ว คุณจะใช้เครื่องมือจัดการข้อมูลเข้าสู่ระบบเพื่อใช้ วิธีการตรวจสอบสิทธิ์ที่รองรับได้ ซึ่งได้แก่ พาสคีย์และลงชื่อเข้าใช้ด้วย Google ดูคู่มือนักพัฒนาซอฟต์แวร์ต่อไปนี้เพื่อเริ่มต้นใช้งาน