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

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

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

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

Размещая объявление о ссылках на цифровые активы на своем веб-сайте, вы также позволяете своему веб-сайту делиться данными автозаполнения с вашим приложением при работе на 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 должен быть полностью определен., А optional_port необходимо опускать при использовании порта 443 для HTTPS.

    Целью 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 со ссылкой на цифровые активы в следующем месте домена для входа:

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

    Например, если ваш домен signin.example.com - 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 для паролей, чтобы указать, что вы прошли через процесс. Google периодически проверяет, действительно ли ссылки, отправленные через форму, работают, и может связаться с вами в случае возникновения проблем.

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

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

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