Nếu đăng nhập One Tap đáp ứng được nhu cầu của bạn, hãy xem xét sử dụng nó để thay thế. One Tap có trải nghiệm người dùng được cập nhật và các cải tiến khác.

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

Nếu ứng dụng của bạn 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 sử dụng các nhà cung cấp dịch vụ đăng nhập được liên kết như Google Sign-In — 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 của họ một lần và sau đó tự động đăng nhập vào cả ứng dụng và trang web.

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

Bằng cách lưu trữ khai báo Liên kết 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 chia sẻ dữ liệu tự động điền với ứng dụng của bạn khi chạy trên Android 8.0 trở lên.

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

Tên miền đăng nhập trên trang web của bạn phải khả dụng thông qua HTTPS.

Liên kết ứng dụng của bạn với trang web của bạn

  1. Tạo tệp JSON liên kết tài sản kỹ thuật số .

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

    [{
      "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 chia sẻ thông tin xác thực đăng nhập, hãy chỉ định chuỗi delegate_permission/common.get_login_creds .

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

    namespace web
    site

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

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

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

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

    Các trường sau 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 Dấu vân tay SHA256 của chứng chỉ ký ứng dụng của bạn. Bạn có thể sử dụng lệnh sau để tạo tệp tham chiếu:
    $ keytool -list -v -keystore my-release-key.keystore

    Xem phần tham khảo Liên kết tài sản kỹ thuật số để biết chi tiết.

  2. Lưu trữ tệp Liên kết tài sản kỹ thuật số JSON 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 Liên kết tài sản kỹ thuật số cần phải là JSON. Đảm bảo máy chủ gửi tiêu đề Content-Type: application/json trong phản hồi.

  3. Đảm bảo rằng máy chủ của bạn cho phép Google truy xuất tệp Liên kết tài sản kỹ thuật số của bạn. Nếu bạn có 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ó thể cho phép bất kỳ tác nhân tự động nào truy xuất tệp trong đường dẫn /.well-known/ để các dịch vụ khác có thể truy cập siêu dữ liệu trong các tệp đó:

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

  4. Khai báo 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 asset_statements tài nguyên chuỗi các strings.xml tập tin. Chuỗi asset_statements là một đối tượng JSON chỉ định các tệp assetlinks.json sẽ tải. Bạn phải thoát khỏi bất kỳ dấu nháy đơn và dấu ngoặc kép nào bạn sử 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. Nó cần được phát hành trên kênh công khai để các hiệp hội được chọn.

  6. (Tùy chọn) Hoàn thành 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 đã thực hiện quy trình. Google định kỳ kiểm tra xem các đơn vị liên kết được gửi qua biểu mẫu có thực sự hoạt động hay không và có thể liên hệ với bạn trong trường hợp có 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ọ trên ứng dụng hoặc trang web của bạn và được tự động đăng nhập vào cả hai.

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 Liên kết tài sản kỹ thuật số. Ví dụ, để kết hợp com.examplecom.example.pro ứng dụng với trang web tại https://signin.example.com/ , xác định cả hai ứng dụng trong tệp JSON 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 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 tệp Liên kết tài sản kỹ thuật số và lưu trữ tệp trên mỗi trang web. Ví dụ, để kết hợp com.examplecom.example.pro ứng dụng với trang web tại https://signin.example.com/https://m.example.com/ , xác định cả hai ứng dụng và cả các 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 , hãy bao gồm tệp Liên kết tài sản kỹ thuật số chính:

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

Cuối cùng, khai báo 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>