Bật tính năng tự động đăng nhập trên các ứng dụng và trang web

Nếu ứng dụng sử dụng Smart Lock cho Mật khẩu chia sẻ cơ sở dữ liệu người dùng với trang web của bạn – hoặc nếu ứng dụng và trang web của bạn dùng các nhà cung cấp dịch vụ đăng nhập được liên kết, chẳng hạn như dưới dạng Đăng nhập bằng Google – bạn có thể liên kết ứng dụng với trang web để người dùng lưu thông tin đăng nhập một lần, sau đó tự động đăng nhập vào cả và trang web.

Để liên kết một ứng dụng với một trang web, hãy khai báo mối liên kết bằng cách lưu trữ một Tệp JSON Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) trên trang web của bạn và thêm một đường liên kết đến tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) vào tệp kê khai của ứng dụng.

Khi lưu trữ bản khai báo về Đường liên kết đến tài sản kỹ thuật số trên trang web của mình, bạn cũng cho phép trang web của bạn để chia sẻ tính năng tự động điền dữ liệu của bạn với ứng dụng khi chạy trên Android 8.0 trở lên.

Điều kiện tiên quyết

Miền đăng nhập của trang web phải hoạt động qua HTTPS.

Liên kết ứng dụng với trang web

  1. Tạo tệp JSON Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số).

    Ví dụ: để khai báo rằng trang web https://signin.example.com và ứng dụng Android có tên gói com.example có thể chia sẻ thông tin đăng nhập thông tin xác thực, hãy tạo một tệp có tên assetlinks.json bao gồm các thông tin sau: nội dung:

    [{
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://signin.example.com"
      }
     },
     {
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example",
        "sha256_cert_fingerprints": [
          "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
        ]
      }
     }]
    

    Trường relation là một mảng gồm một hoặc nhiều chuỗi mô tả mối quan hệ đang được khai báo. Để khai báo rằng các ứng dụng và trang web dùng chung thông tin đăng nhập, hãy chỉ định chuỗi delegate_permission/common.get_login_creds.

    Trường target là đối tượng chỉ định tài sản mà nội dung khai báo sẽ áp dụng. Sau đây là các trường xác định một trang web:

    namespace web
    site

    URL của trang web, theo định dạng https://domain[:optional_port]; với ví dụ: https://www.example.com.

    domain phải đủ điều kiện, và Phải bỏ qua optional_port khi sử dụng cổng 443 cho HTTPS.

    Đích site chỉ được là miền gốc: bạn không thể giới hạn liên kết ứng dụng với một thư mục con cụ thể. Không bao gồm trong URL, chẳng hạn như dấu gạch chéo ở cuối.

    Miền con không được cân nhắc để khớp: nghĩa là nếu bạn chỉ định domainwww.example.com, thì miền www.counter.example.com sẽ không được liên kết với ứng dụng của bạn.

    Sau đây là các trường xác định một ứng dụng Android:

    namespace android_app
    package_name Tên gói được khai báo trong tệp kê khai của ứng dụng. Ví dụ: com.example.android
    sha256_cert_fingerprints Tệp tham chiếu SHA256 của chứng chỉ ký của ứng dụng. Bạn có thể hãy dùng lệnh sau để tạo vân tay số:
    $ keytool -list -v -keystore my-release-key.keystore

    Xem tài liệu tham khảo về Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) để biết thông tin chi tiết.

  2. Lưu trữ tệp JSON chứa Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) tại vị trí sau trên miền đăng nhập:

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

    Ví dụ: nếu miền đăng nhập của bạn là signin.example.com, hãy lưu trữ tệp JSON tại https://signin.example.com/.well-known/assetlinks.json.

    Loại MIME cho tệp Digital Asset Link (Đường liên kết đến tài sản kỹ thuật số) phải là JSON. Hãy đảm bảo máy chủ gửi một tiêu đề Content-Type: application/json trong phản hồi.

  3. Đảm bảo rằng máy chủ lưu trữ cho phép Google truy xuất tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) của bạn. Nếu bạn có tệp robots.txt, tệp đó phải cho phép tác nhân Googlebot truy xuất /.well-known/assetlinks.json. Hầu hết các trang web chỉ cần cho phép mọi tác nhân tự động truy xuất tệp trong đường dẫn /.well-known/ để các dịch vụ khác có thể truy cập vào siêu dữ liệu trong những tệp đó:

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

  4. Khai báo mối liên kết trong ứng dụng Android.

    1. Thêm dòng sau vào tệp kê khai trong <application>:

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. Thêm một tài nguyên chuỗi asset_statements vào tệp strings.xml. Chuỗi asset_statements là một đối tượng JSON chỉ định các tệp assetlinks.json cần tải. Bạn phải thoát mọi dấu nháy đơn và dấu ngoặc kép mà bạn dùng trong chuỗi. Ví dụ:

        <string name="asset_statements" translatable="false">
        [{
          \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
        }]
        </string>
      
        > 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
      
  5. Xuất bản ứng dụng lên Cửa hàng Google Play. Ứng dụng này cần được phát hành công khai để xác định mối liên kết.

  6. (Không bắt buộc) Hoàn tất và gửi Biểu mẫu liên kết Smart Lock cho Mật khẩu để cho biết rằng bạn đã truy cập thông qua quy trình. Google định kỳ kiểm tra xem đơn vị liên kết gửi qua biểu mẫu này thực sự có hiệu quả và có thể liên hệ với bạn trong trường hợp vấn đề.

Khi quá trình xác minh hoàn tất, người dùng ứng dụng của bạn có thể lưu thông tin đăng nhập của họ vào ứng dụng hoặc trang web của bạn và tự động được đăng nhập vào cả hai nền tảng này.

Ví dụ: Liên kết nhiều ứng dụng với một trang web

Bạn có thể liên kết nhiều ứng dụng với một trang web bằng cách chỉ định từng ứng dụng trong tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số). Ví dụ: để liên kết com.examplecom.example.pro ứng dụng có trang web tại https://signin.example.com/, hãy nêu rõ cả hai ứng dụng trong tệp JSON được lưu trữ tại https://signin.example.com/.well-known/assetlinks.json:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

Sau đó, khai báo mối liên kết trong cả hai ứng dụng:

  1. Thêm dòng sau vào tệp kê khai trong <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Thêm tài nguyên chuỗi sau vào tệp strings.xml:

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

Ví dụ: Liên kết ứng dụng với nhiều trang web

Bạn có thể liên kết ứng dụng với nhiều trang web bằng cách chỉ định từng trang web trong Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) lưu trữ tệp đó trên mỗi trang web. Ví dụ: để liên kết ứng dụng com.examplecom.example.pro với trang web tại https://signin.example.com/https://m.example.com/, hãy nêu rõ cả ứng dụng và cả hai trang web trong tệp JSON được lưu trữ tại https://signin.example.com/.well-known/assetlinks.json:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://m.example.com"
  },
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

Sau đó, trong tệp JSON được lưu trữ tại https://m.example.com/.well-known/assetlinks.json, bao gồm kỹ thuật số chính Tệp Đường liên kết đến tài sản:

[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]

Cuối cùng, hãy khai báo mối liên kết trong cả hai ứng dụng:

  1. Thêm dòng sau vào tệp kê khai trong <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Thêm tài nguyên chuỗi sau vào tệp strings.xml:

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