Включить автоматический вход в приложения и на веб-сайты

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Если ваше приложение, использующее Smart Lock для паролей, совместно использует базу данных пользователей с вашим веб-сайтом или если ваше приложение и веб-сайт используют поставщиков федеративного входа, таких как Google Sign-In, вы можете связать приложение с веб-сайтом, чтобы пользователи сохраняли свои учетные данные. один раз, а затем автоматически войдите как в приложение, так и на веб-сайт.

Чтобы связать приложение с веб-сайтом, объявите ассоциации, разместив файл JSON ссылок на цифровые активы на своем веб-сайте и добавив ссылку на файл ссылок на цифровые активы в манифест вашего приложения.

Размещая на своем веб-сайте объявление о ссылках на цифровые активы, вы также позволяете своему веб-сайту обмениваться данными автозаполнения с вашим приложением при работе на Android 8.0 и более поздних версиях.

Предпосылки

Домен входа вашего веб-сайта должен быть доступен через HTTPS.

Свяжите свое приложение с вашим сайтом

  1. Создайте файл JSON со ссылками на цифровые активы .

    Например, чтобы объявить, что веб-сайт https://signin.example.com и приложение Android с именем пакета com.example могут совместно использовать учетные данные для входа, создайте файл с именем 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 web
    site

    URL-адрес веб-сайта в формате https:// domain [: optional_port ] ; например, https://www.example.com .

    domain должен быть полностью определенным. При использовании порта 443 для HTTPS необходимо опустить optional_port .

    Целевой site может быть только корневым доменом: вы не можете ограничить ассоциацию приложения определенным подкаталогом. Не включайте путь в URL-адрес, например косую черту в конце.

    Субдомены не считаются соответствующими: то есть, если вы укажете domain как www.example.com , домен www.counter.example.com не будет связан с вашим приложением.

    Следующие поля идентифицируют приложение для Android:

    namespace android_app
    package_name Имя пакета, объявленное в манифесте приложения. Например, com.example.android
    sha256_cert_fingerprints Отпечатки SHA256 сертификата подписи вашего приложения. Вы можете использовать следующую команду для создания отпечатка пальца:
    $ keytool -list -v -keystore my-release-key.keystore

    Дополнительные сведения см. в справке по ссылкам на цифровые активы .

  2. Разместите JSON-файл Digital Assets Link в следующем расположении домена входа:

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

    Например, если ваш домен входа — signin.example.com , разместите файл JSON по адресу https://signin.example.com/.well-known/assetlinks.json .

    Тип MIME для файла ссылки на цифровые активы должен быть JSON. Убедитесь, что сервер отправляет заголовок Content-Type: application/json в ответе.

  3. Убедитесь, что ваш хост разрешает Google извлекать ваш файл Digital Asset Link. Если у вас есть файл robots.txt , он должен позволять агенту Googlebot извлекать /.well-known/assetlinks.json . Большинство сайтов могут просто разрешить любому автоматизированному агенту извлекать файлы по пути /.well-known/ , чтобы другие службы могли получить доступ к метаданным в этих файлах:

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

  4. Объявите ассоциацию в приложении для Android.

    1. Добавьте следующую строку в файл манифеста в <application> :

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. Добавьте строковый ресурс asset_statements в файл strings.xml . Строка asset_statements — это объект JSON, указывающий загружаемые файлы assetlinks.json . Вы должны избегать любых апострофов и кавычек, которые вы используете в строке. Например:

        <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. Опубликуйте приложение в Google Play Store. Его необходимо опубликовать в общедоступном канале, чтобы ассоциации были подхвачены.

  6. (Необязательно) Заполните и отправьте форму присоединения к Smart Lock for Passwords, чтобы указать, что вы прошли через этот процесс. Google периодически проверяет, действительно ли работают аффилиации, отправленные через форму, и может связаться с вами в случае возникновения проблем.

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

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

Вы можете связать несколько приложений с веб-сайтом, указав каждое приложение в файле ссылок на цифровые активы. Например, чтобы связать приложения com.example и com.example.pro с сайтом https://signin.example.com/ , укажите оба приложения в файле JSON, размещенном по адресу https://signin.example.com/.well-known/assetlinks.json . 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"
    ]
  }
}]

Затем объявите ассоциацию в обоих приложениях:

  1. Добавьте следующую строку в файл манифеста в <application> :

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Добавьте следующий строковый ресурс в файл strings.xml :

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

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

Вы можете связать приложения с несколькими веб-сайтами, указав каждый веб-сайт в файле ссылок на цифровые активы и разместив файл на каждом веб-сайте. Например, чтобы связать приложения com.example и com.example.pro с сайтом https://signin.example.com/ и https://m.example.com/ , укажите оба приложения и оба сайта в поле Файл JSON, размещенный по адресу 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"
    ]
  }
}]

Затем в файл JSON, размещенный по адресу https://m.example.com/.well-known/assetlinks.json , включите основной файл ссылок на цифровые активы:

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

Наконец, объявите ассоциацию в обоих приложениях:

  1. Добавьте следующую строку в файл манифеста в <application> :

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Добавьте следующий строковый ресурс в файл strings.xml :

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