Şifreler için Smart Lock'u kullanan uygulamanız, web sitenizle bir kullanıcı veritabanını paylaşıyorsa veya uygulamanız ile web siteniz, Google ile Oturum Açma gibi birleşik oturum açma sağlayıcıları kullanıyorsa, kullanıcıların kimlik bilgilerini bir kez kaydedip hem uygulamada hem de web sitesinde otomatik olarak oturum açabilmeleri için uygulamayı web sitesiyle ilişkilendirebilirsiniz.
Bir uygulamayı bir web sitesiyle ilişkilendirmek için web sitenizde bir Dijital Öğe Bağlantıları JSON dosyası barındırıp uygulamanızın manifest dosyasına Digital Asset Link dosyasının bir bağlantısını ekleyerek ilişkilendirmeleri bildirin.
Web sitenizde bir Dijital Öğe Bağlantıları beyanı barındırarak, web sitenizin Android 8.0 ve sonraki sürümleri üzerinde çalışırken otomatik doldurma verilerini uygulamanızla paylaşabilmesini de sağlarsınız.
Ön koşullar
Web sitenizin oturum açma alanı HTTPS üzerinden erişilebilir olmalıdır.
Uygulamanızı web sitenizle ilişkilendirme
Dijital Öğe Bağlantıları JSON dosyası oluşturun.
Örneğin,
https://signin.example.com
web sitesinin ve paket adıcom.example
olan 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ı, bildirilen ilişkiyi açıklayan bir veya daha fazla dizeden oluşan 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 URL'si
https://domain[:optional_port]
biçiminde (örneğin,https://www.example.com
).domain tam nitelikli olmalıdır. HTTPS için bağlantı noktası 443 kullanılırken optional_port atlanmalıdır.
site
hedefi yalnızca kök alan olabilir: Bir uygulama ilişkilendirmesini belirli bir alt dizinle sınırlandıramazsınız. URL'nin sonuna sağa eğik çizgi gibi bir yol eklemeyin.Alt alan adlarının eşleştiği kabul edilmez. Diğer bir deyişle, domain özelliğini
www.example.com
olarak belirtirsenizwww.counter.example.com
alanı uygulamanızla ilişkilendirilmez.Aşağıdaki alanlar Android uygulamaları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 izleri. Parmak izini oluşturmak için aşağıdaki 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 Asset Link JSON dosyasını, oturum açma alanında şu 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ırabilirsiniz.Digital Asset Link dosyasının MIME türü JSON olmalıdır. Sunucunun yanıtta bir
Content-Type: application/json
başlığı 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.
robots.txt
dosyanız varsa Googlebot aracısının/.well-known/assetlinks.json
öğesini almasına izin vermesi gerekir. Çoğu site, diğer hizmetlerin bu dosyalardaki meta verilere erişebilmesi için/.well-known/
yolundaki tüm otomatik aracıların dosyaları almasına izin verebilir:User-agent: * Allow: /.well-known/
Android uygulamasında ilişkilendirmeyi bildirin.
<application>
altındaki manifest dosyasına aşağıdaki 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 tüm kesme işaretlerini ve tırnak işaretlerini atlatmanı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ınabilmesi için herkese açık kanalda yayınlanması gerekir.
(İsteğe bağlı) Süreçleri tamamladığınızı belirtmek üzere Şifreler için Smart Lock ilişkilendirme formunu doldurup gönderin. Google, form aracılığıyla gönderilen ilişkilendirmelerin gerçekten işe yarayıp yaramadığını düzenli olarak kontrol eder ve sorun olması halinde sizinle iletişime geçebilir.
Doğrulama tamamlandıktan sonra uygulamanızın kullanıcıları, kimlik bilgilerini uygulamanıza veya web sitenize kaydedebilir ve her iki hesapta da otomatik olarak oturum açabilir.
Örnek: Birden fazla uygulamayı bir web sitesiyle ilişkilendirme
Bir öğeyi birden fazla web sitesiyle ilişkilendirebilmek için her uygulamayı Dijital Öğeler Bağlantısı dosyasında belirtin. Örneğin, com.example
ve com.example.pro
uygulamalarını https://signin.example.com/
sitesindeki siteyle ilişkilendirmek için her iki uygulamayı da https://signin.example.com/.well-known/assetlinks.json
adresinde barındırılan JSON dosyasında 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, her iki uygulamada ilişkilendirmeyi beyan edin:
<application>
altındaki manifest dosyasına aşağıdaki 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 fazla web sitesiyle ilişkilendirme
Digital Asset Link dosyasında her bir web sitesini belirterek ve her web sitesinde dosyayı barındırarak uygulamaları birden fazla web sitesiyle ilişkilendirebilirsiniz. Örneğin, com.example
ve com.example.pro
uygulamalarını https://signin.example.com/
ve https://m.example.com/
sitelerindeki siteyle ilişkilendirmek için hem uygulamaları hem de https://signin.example.com/.well-known/assetlinks.json
alanını barındıran 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
tarafından barındırılan JSON dosyasına birincil Dijital Öğe Bağlantıları dosyasını ekleyin:
[{
"include": "https://signin.example.com/.well-known/assetlinks.json"
}]
Son olarak, her iki uygulamada ilişkilendirmeyi beyan edin:
<application>
altındaki manifest dosyasına aşağıdaki 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>