Şifreler için Smart Lock'u kullanan uygulamanız, web sitenizle bir kullanıcı veritabanı paylaşırsa veya uygulamanız ve web siteniz, Google ile Oturum Açma gibi birleşik oturum açma sağlayıcıları kullanıyorsa uygulamayı web sitesiyle ilişkilendirebilirsiniz. Böylece kullanıcılar, kimlik bilgilerini bir kez kaydeder ve ardından hem uygulamada hem de web sitesinde otomatik olarak oturum açar.
Bir uygulamayı bir web sitesiyle ilişkilendirmek için web sitenizde bir Digital Asset Links JSON dosyası barındırarak ve uygulamanızın manifest dosyasına Digital Asset Link dosyasının bağlantısını ekleyerek ilişkilendirmeleri beyan edin.
Web sitenizde bir Digital Asset Links beyanı barındırarak, web sitenizin Android 8.0 ve daha yeni sürümlerde çalışırken uygulamanızla otomatik doldurma verileri paylaşmasını da sağlarsınız.
Ön koşullar
Web sitenizin oturum açma alanı HTTPS üzerinden sunulmalıdır.
Uygulamanızı web sitenizle ilişkilendirme
Digital Asset Links JSON dosyası oluşturun.
Örneğin,
https://signin.example.com
web sitesinin vecom.example
paket adına sahip bir Android uygulamasının oturum açma kimlik bilgilerini paylaşabileceğini bildirmek için aşağıdaki içeriğe sahipassetlinks.json
adlı bir dosya oluşturun:[{ "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
alanı, bildirilmekte olan ilişkiyi açıklayan bir veya daha fazla dizeden oluşan bir dizidir. Uygulamaların ve sitelerin oturum açma kimlik bilgilerini paylaştığını bildirmek içindelegate_permission/common.get_login_creds
dizesini belirtin.target
alanı, bildirimin geçerli olduğu öğeyi belirten bir nesnedir. Aşağıdaki alanlar bir web sitesini tanımlar:namespace
web
site
Web sitesinin
https://domain[:optional_port]
biçimindeki URL'si; örneğin,https://www.example.com
.domain tam nitelikli olmalıdır ve HTTPS için 443 numaralı bağlantı noktası kullanılırken optional_port atlanmalıdır.
Bir
site
hedefi yalnızca bir kök alan olabilir: Uygulama ilişkilendirmesini belirli bir alt dizinle sınırlandıramazsınız. URL'ye, sonunda eğik çizgi gibi bir yol eklemeyin.Alt alan adlarının eşleştiği kabul edilmez. Yani domain alanını
www.example.com
olarak belirtirsenizwww.counter.example.com
alanı, uygulamanızla ilişkilendirilmez.Aşağıdaki alanlar bir Android uygulamasını tanımlar:
namespace
android_app
package_name
Uygulamanın manifest dosyasında belirtilen paket adı. Örneğin, com.example.android
sha256_cert_fingerprints
Uygulamanızın imzalama sertifikasının SHA256 parmak izleridir. Parmak izini oluşturmak için şu komutu kullanabilirsiniz: $ keytool -list -v -keystore my-release-key.keystore
Ayrıntılar için Dijital Öğe Bağlantıları referansına bakın.
Digital Assets Link JSON dosyasını, oturum açma alanında aşağıdaki konumda barındırın:
https://domain[:optional_port]/.well-known/assetlinks.json
Örneğin, oturum açma alan adınız
signin.example.com
ise JSON dosyasınıhttps://signin.example.com/.well-known/assetlinks.json
adresinde barındırın.Digital Assets Link dosyasının MIME türü JSON olmalıdır. Sunucunun yanıtta bir
Content-Type: application/json
üst bilgisi gönderdiğinden emin olun.Barındırıcınızın, Google'ın Dijital Öğe Bağlantısı dosyanızı almasına izin verdiğinden emin olun. Bir
robots.txt
dosyanız varsa Googlebot aracısının/.well-known/assetlinks.json
dosyasını almasına izin vermelidir. Çoğu site, diğer hizmetlerin bu dosyalardaki meta verilere erişebilmesi için herhangi bir otomatik aracının/.well-known/
yolundaki dosyaları almasına izin verebilir:User-agent: * Allow: /.well-known/
Android uygulamasında ilişkilendirmeyi bildirin.
<application>
altındaki manifest dosyasına şu satırı ekleyin:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
strings.xml
dosyasına birasset_statements
dize kaynağı ekleyin.asset_statements
dizesi, yüklenecekassetlinks.json
dosyalarını belirten bir JSON nesnesidir. Dizede kullandığınız kesme işaretlerinden ve tırnak işaretlerinden kaçınmanız gerekir. Örneğin:<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
Uygulamayı Google Play Store'da yayınlayın. İlişkilendirmelerin alınması için bu değerin herkese açık kanalda yayınlanması gerekir.
(İsteğe bağlı) Süreci tamamladığınızı belirtmek üzere Şifreler için Smart Lock bağlantı formunu doldurup gönderin. Google, form aracılığıyla gönderilen satış ortaklarının gerçekten çalışıp çalışmadığını düzenli olarak kontrol eder ve sorun olması durumunda sizinle iletişime geçebilir.
Doğrulama tamamlandığında, uygulamanızın kullanıcıları kimlik bilgilerini uygulamanıza veya web sitenize kaydedebilir ve her ikisinde de otomatik olarak oturum açabilirler.
Örnek: Birden fazla uygulamayı bir web sitesiyle ilişkilendirme
Digital Assets Link dosyasında her bir uygulamayı belirterek bir web sitesiyle birden fazla uygulamayı ilişkilendirebilirsiniz. Örneğin, com.example
ve com.example.pro
uygulamalarını https://signin.example.com/
adresindeki siteyle ilişkilendirmek için https://signin.example.com/.well-known/assetlinks.json
adresinde barındırılan JSON dosyasında her iki uygulamayı da belirtin:
[{
"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"
]
}
}]
Ardından, ilişkilendirmeyi her iki uygulamada da bildirin:
<application>
altındaki manifest dosyasına şu satırı ekleyin:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
strings.xml
dosyasına aşağıdaki dize kaynağını ekleyin:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
Örnek: Uygulamaları birden çok web sitesiyle ilişkilendirme
Uygulamaları birden çok web sitesiyle ilişkilendirebilirsiniz. Bunun için Digital Assets Link dosyasında her bir web sitesini belirtip dosyayı her web sitesinde barındırabilirsiniz. Örneğin, com.example
ve com.example.pro
uygulamalarını https://signin.example.com/
ve https://m.example.com/
adresindeki siteyle ilişkilendirmek için hem uygulamaları hem de https://signin.example.com/.well-known/assetlinks.json
adresinde barındırılan JSON dosyasında her iki siteyi de belirtin:
[{
"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"
]
}
}]
Ardından, https://m.example.com/.well-known/assetlinks.json
adresinde barındırılan JSON dosyasına birincil Digital Asset Links dosyasını ekleyin:
[{
"include": "https://signin.example.com/.well-known/assetlinks.json"
}]
Son olarak, ilişkilendirmeyi her iki uygulamada da bildirin:
<application>
altındaki manifest dosyasına şu satırı ekleyin:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
strings.xml
dosyasına aşağıdaki dize kaynağını ekleyin:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>