示例:在多个网站和多个 Android 设备上共享凭据

设置在多个网站和多个 Android 应用之间共享凭据 您必须:

  • 指定主域名:选择一个网址作为以下内容的主要参考点: 链接。
  • 创建 assetlinks.json 文件
    • 主域名:在主域名上创建 assetlinks.json 文件,其中会列出 共享凭据的所有网域。
    • 其他域名:为各个域名分别创建一个 assetlinks.json 文件 网域,每个网域都链接回主网域。
  • 在每个应用的清单中配置数字资产关联:将每个应用设置为 链接回主网域中的 assetlinks.json 文件。

在以下示例中,我们将 将 example.com 作为主域名,将其他所有 与以下网域共享凭据: example.com 以及整个网域。

具有以下软件包名称的两个应用也会与 和这两者之间:

  • com.example.android.myapplication
  • com.example.appname

在设置凭据共享之前,您必须满足前提条件

如需声明在这些网站和 Android 应用之间共享凭据,请执行以下操作:

  1. 创建一个包含以下内容的 assetlinks.json 文件:

    [
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://example.com"
        }
      },
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://example.org"
        }
      },
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://example.net"
        }
      },
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://myownpersonaldomain.com"
        }
      },
      {
        "relation" : [
          "delegate_permission/common.get_login_creds"
        ],
        "target" : {
          "namespace" : "android_app",
          "package_name" : "com.example.android.myapplication",
          "sha256_cert_fingerprints" : [ "AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00:AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00"
          ]
        }
      },
      {
        "relation" : [
          "delegate_permission/common.get_login_creds"
        ],
        "target" : {
          "namespace" : "android_app",
          "package_name" : "com.example.appname",
          "sha256_cert_fingerprints" : [ "00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF"
          ]
        }
      }
    ]
    
  2. 将 Digital Asset Links JSON 文件托管在相应的已知名称 位置,在这种情况下: https://example.com/.well-known/assetlinks.json

  3. 创建另一个包含以下内容的 assetlinks.json 文件:

    [
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "example.com"
        }
      }
    ]
    
  4. 在以下位置托管此 Digital Asset Links JSON 文件的副本 在其他网域上,在此示例中为:

    • example.org/.well-known/assetlinks.json
    • example.net/.well-known/assetlinks.json
    • mypersonaldomain.com/.well-known/assetlinks.json
  5. 将下面这行代码添加到以下两个 Android 应用清单文件中 <application>

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  6. 通过声明关联在清单中配置数字资产关联 。添加一个对象,用于指定 assetlinks.json 文件 等待加载。在此示例中:

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

完成以下步骤后,您已成功设置无缝凭据 在多个网站和 Android 应用之间共享数据。