Jika aplikasi Anda yang menggunakan Smart Lock untuk Sandi berbagi database pengguna dengan Anda atau jika aplikasi dan situs Anda menggunakan penyedia login gabungan seperti sebagai Google Sign-In—Anda dapat mengaitkan aplikasi dengan situs web pengguna menyimpan kredensial mereka sekali, lalu {i>login<i} secara otomatis ke kedua aplikasi dan {i>website<i}.
Untuk mengaitkan aplikasi dengan situs, deklarasikan pengaitan dengan menghosting File JSON Digital Asset Links di situs Anda, dan menambahkan link ke file Digital Asset Link ke manifes aplikasi Anda.
Dengan menghosting pernyataan Digital Asset Links di situs, Anda juga mengaktifkan situs Anda untuk membagikan fitur isi otomatis dengan aplikasi Anda saat menjalankan Android 8.0 dan yang lebih baru.
Prasyarat
Domain login situs Anda harus tersedia melalui HTTPS.
Mengaitkan aplikasi dengan situs
- Buat file JSON Digital Asset Links. - Misalnya, untuk mendeklarasikan bahwa situs - https://signin.example.comdan aplikasi Android dengan nama paket- com.exampledapat berbagi info login kredensial, buat file bernama- assetlinks.jsondengan konten:- [{ "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" ] } }]- Kolom - relationadalah array dari satu atau beberapa string yang menjelaskan hubungan yang dideklarasikan. Untuk mendeklarasikan bahwa aplikasi dan situs berbagi kredensial login, tentukan string- delegate_permission/common.get_login_creds.- Kolom - targetadalah objek yang menentukan aset tempat deklarasi berlaku. Kolom berikut mengidentifikasi situs:- namespace- web- site- URL situs, dalam format - https://domain[:optional_port]; untuk contoh,- https://www.example.com.- domain harus sepenuhnya memenuhi syarat, dan optional_port harus dihilangkan saat menggunakan port 443 untuk dengan HTTPS. - Target - sitehanya dapat berupa domain root: Anda tidak dapat membatasi pengaitan aplikasi ke subdirektori tertentu. Jangan sertakan jalur dalam URL, seperti garis miring.- Subdomain tidak dianggap cocok: yaitu, jika Anda menentukan domain sebagai - www.example.com, domain- www.counter.example.comtidak akan dikaitkan dengan aplikasi Anda.- Kolom berikut mengidentifikasi aplikasi Android: - namespace- android_app- package_name- Nama paket yang dideklarasikan dalam manifes aplikasi. Misalnya, - com.example.android- sha256_cert_fingerprints- Sidik jari SHA256 dari sertifikat penandatanganan aplikasi Anda. Anda dapat gunakan perintah berikut untuk membuat sidik jari: - $ keytool -list -v -keystore my-release-key.keystore - Lihat referensi Digital Asset Links untuk mengetahui detailnya. 
- Menghosting file JSON Digital Assets Link di lokasi berikut pada domain login: - https://domain[:optional_port]/.well-known/assetlinks.json - Misalnya, jika domain login Anda adalah - signin.example.com, hosting file JSON di- https://signin.example.com/.well-known/assetlinks.json.- Jenis MIME untuk file Digital Assets Link harus berupa JSON. Pastikan server mengirimkan header - Content-Type: application/jsondalam respons.
- Pastikan host Anda mengizinkan Google untuk mengambil file Digital Asset Link. Jika Anda memiliki file - robots.txt, file tersebut harus mengizinkan agen Googlebot untuk mengambil- /.well-known/assetlinks.json. Sebagian besar situs mengizinkan agen otomatis untuk mengambil file di jalur- /.well-known/sehingga layanan lain dapat mengakses metadata dalam file tersebut:- User-agent: * Allow: /.well-known/ 
- Mendeklarasikan pengaitan di aplikasi Android. - Tambahkan baris berikut ke file manifes di bagian - <application>:- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- Tambahkan resource string - asset_statementske file- strings.xml. String- asset_statementsadalah objek JSON yang menentukan file- assetlinks.jsonuntuk dimuat. Anda harus meng-escape apostrof dan tanda kutip yang Anda gunakan dalam string. Contoh:- <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
 
- Publikasikan aplikasi ke Google Play Store. Dokumen tersebut perlu dirilis ke publik jaringan agar pengaitan dapat diambil. 
- (Opsional) Isi dan kirimkan Formulir afiliasi Smart Lock untuk Sandi untuk menunjukkan bahwa Anda menghadiri melalui proses tersebut. Google secara berkala memeriksa apakah afiliasi dikirimkan melalui formulir yang benar-benar berfungsi dan dapat menghubungi Anda jika menyelesaikan semua jenis permasalahan. 
Setelah verifikasi selesai, pengguna aplikasi Anda dapat menyimpan kredensial mereka di aplikasi atau situs web Anda dan secara otomatis masuk ke keduanya.
Contoh: Mengaitkan beberapa aplikasi dengan situs
Anda dapat mengaitkan beberapa aplikasi dengan situs web dengan menentukan setiap aplikasi di
File Link Aset Digital. Misalnya, untuk mengaitkan com.example dan
com.example.pro aplikasi dengan situs di https://signin.example.com/, tentukan
kedua aplikasi dalam file JSON yang di-host di
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"
    ]
  }
}]
Kemudian, deklarasikan pengaitan di kedua aplikasi:
- Tambahkan baris berikut ke file manifes di bagian - <application>:- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- Tambahkan resource string berikut ke file - strings.xml:- <string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
Contoh: Mengaitkan aplikasi dengan beberapa situs
Anda dapat mengaitkan aplikasi dengan beberapa situs web dengan menentukan masing-masing situs web di
Digital Assets Link dan menghosting file di setiap situs. Misalnya, untuk
mengaitkan aplikasi com.example dan com.example.pro dengan situs di
https://signin.example.com/ dan https://m.example.com/, tentukan
aplikasi dan kedua situs dalam file JSON yang dihosting di
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"
    ]
  }
}]
Kemudian, dalam file JSON yang dihosting di
https://m.example.com/.well-known/assetlinks.json, sertakan Digital
File Asset Links:
[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]
Terakhir, deklarasikan pengaitan di kedua aplikasi:
- Tambahkan baris berikut ke file manifes di bagian - <application>:- <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
- Tambahkan resource string berikut ke file - strings.xml:- <string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>