Пример. Совместное использование учетных данных на нескольких веб-сайтах и ​​в нескольких приложениях Android.

Чтобы настроить совместное использование учетных данных на нескольких веб-сайтах и ​​в нескольких приложениях Android, необходимо:

  • Назначьте основной домен . Выберите один URL-адрес в качестве основной точки отсчета для ссылок.
  • Создайте файлы 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. Разместите файл 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. Разместите копии этого файла 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. Настройте привязку цифровых активов в манифесте, объявив связь в приложении Android. Добавьте объект, указывающий файлы assetlinks.json для загрузки. В этом случае:

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

Выполнив эти шаги, вы успешно настроили беспрепятственный обмен учетными данными между несколькими веб-сайтами и приложениями Android.