如需设置在多个网站和多个 Android 应用之间共享凭据,您必须执行以下操作:
- 指定主网域:选择一个网址作为链接的主要参考点。
- 创建
assetlinks.json
文件:- 主网域:在主网域上创建
assetlinks.json
文件,其中列出共享凭据的所有网域。 - 其他网域:在每个其他网域上创建一个
assetlinks.json
文件,每个文件都链接回主网域。
- 主网域:在主网域上创建
- 在每个应用的清单中配置数字资产关联:将每个应用设置为链接回主网域中的
assetlinks.json
文件。
在以下示例中,我们将 example.com 指定为主网域,并且所有其他列出的网域都与 example.com 共享凭据,并且彼此之间也共享凭据。
以下两个软件包名称的应用还会与所有网站共享凭据,并在它们之间共享凭据:
com.example.android.myapplication
com.example.appname
在设置凭据共享之前,您必须满足前提条件。
如需声明这些网站和 Android 应用之间共享凭据,请执行以下操作:
创建一个包含以下内容的
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" ] } } ]
将 Digital Asset Links JSON 文件托管在主网域上的相应众所周知的位置,在本例中为
https://example.com/.well-known/assetlinks.json
。创建另一个包含以下内容的
assetlinks.json
文件:[ { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "example.com" } } ]
在其他网域的以下位置托管此 Digital Asset Links JSON 文件的副本,在本例中:
example.org/.well-known/assetlinks.json
example.net/.well-known/assetlinks.json
mypersonaldomain.com/.well-known/assetlinks.json
将以下代码行添加到两个 Android 应用清单文件的
<application>
下:<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
在 Android 应用中声明关联,以便在清单中配置数字资产关联。添加一个对象,用于指定要加载的
assetlinks.json
文件。在此示例中:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://example.com/.well-known/assetlinks.json\" }] </string>
按照上述步骤操作后,您已成功设置在多个网站和 Android 应用中无缝共享凭据。