Parolalar için Smart Lock kullanan uygulamanız web sitenizle bir kullanıcı veritabanı paylaşıyorsa veya uygulamanız ve 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 kaydetmeleri için uygulamayı web sitesiyle ilişkilendirebilirsiniz. hem uygulamada hem de web sitesinde bir kez ve ardından otomatik olarak oturum açın.
Bir uygulamayı bir web sitesiyle ilişkilendirmek için, web sitenizde bir Digital Asset Links JSON dosyası barındırarak ve uygulamanızın manifestine Digital Asset Link dosyasına bir bağlantı ekleyerek ilişkilendirmeleri bildirin.
Web sitenizde bir Dijital Varlık Bağlantıları beyanı barındırarak, web sitenizin Android 8.0 ve daha yeni sürümlerde çalışırken uygulamanızla otomatik doldurma verilerini paylaşmasını da sağlarsınız .
Önkoşullar
Web sitenizin oturum açma alanı HTTPS aracılığıyla kullanılabilmelidir.
Uygulamanızı web sitenizle ilişkilendirin
Bir Dijital Varlık Bağlantıları JSON dosyası oluşturun.
Örneğin,
https://signin.example.com
web sitesinin vecom.example
paket adlı bir Android uygulamasının oturum açma kimlik bilgilerini paylaşabileceğiniassetlinks.json
etmek 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 tanımlayan 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 varlığı 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
.Etki domain tam nitelikli olmalı ve HTTPS için 443 numaralı bağlantı noktası kullanılırken optional_port bağlı_ bağlantı noktası atlanmalıdır.
Bir
site
hedefi yalnızca bir kök etki alanı olabilir: Bir uygulama ilişkisini belirli bir alt dizinle sınırlayamazsınız. URL'ye eğik çizgi gibi bir yol eklemeyin.Alt alan adlarının eşleştiği kabul edilmez: Yani, domain
www.example.com
olarak belirtirseniz,www.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 bildiriminde 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 şu komutu kullanabilirsiniz: $ keytool -list -v -keystore my-release-key.keystore
Ayrıntılar için Dijital Varlık Bağlantıları referansına bakın.
Digital Assets Link JSON dosyasını oturum açma etki alanında şu konumda barındırın:
https://domain[:optional_port]/.well-known/assetlinks.json
Örneğin, oturum açma alanınız
signin.example.com
ise JSON dosyasınıhttps://signin.example.com/.well-known/assetlinks.json
.Digital Assets Link dosyası için MIME türünün JSON olması gerekir. 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 Varlık 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
almasına izin vermesi gerekir. Çoğu site, herhangi bir otomatik aracının/.well-known/
yolundaki dosyaları almasına izin verebilir, böylece diğer hizmetler bu dosyalardaki meta verilere erişebilir: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" />
Bir ekleme
asset_statements
dize kaynağıstrings.xml
dosyası.asset_statements
dizesi, yüklenecekassetlinks.json
dosyalarını belirten bir JSON nesnesidir. Dizede kullandığınız kesme ve tırnak işaretlerinden kaçınmalısınız. Ö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. Derneklerin toplanması için kamuya açık kanalda yayınlanması gerekiyor.
(İsteğe bağlı) İşlemden geçtiğinizi belirtmek için Smart Lock for Password üyelik formunu doldurun ve gönderin. Google, form aracılığıyla gönderilen bağlı kuruluşları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çabilir.
Örnek: Birden çok uygulamayı bir web sitesiyle ilişkilendirme
Digital Assets Link dosyasında her bir uygulamayı belirterek birden fazla uygulamayı bir web sitesiyle ilişkilendirebilirsiniz. Örneğin, ilişkilendirmek com.example
ve com.example.pro
de site ile uygulamalar https://signin.example.com/
barındırılan JSON dosyasındaki her iki uygulamanın da belirtin 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"
]
}
}]
Ardından, her iki uygulamada da 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" />
Aşağıdaki dize kaynağını
strings.xml
dosyasına 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
Dijital Varlıklar Bağlantısı dosyasında her bir web sitesini belirterek ve dosyayı her web sitesinde barındırarak uygulamaları birden çok web sitesiyle ilişkilendirebilirsiniz. Örneğin, com.example
ve com.example.pro
uygulamalarını https://signin.example.com/
ve https://m.example.com/
com.example.pro
siteyle ilişkilendirmek için, https://signin.example.com/.well-known/assetlinks.json
barındırılan JSON dosyası:
[{
"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
barındırılan JSON dosyasına birincil Dijital Varlık Bağlantıları dosyasını ekleyin:
[{
"include": "https://signin.example.com/.well-known/assetlinks.json"
}]
Son olarak, her iki uygulamada da ilişkilendirmeyi bildirin:
<application>
altındaki bildirim dosyasına aşağıdaki satırı ekleyin:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Aşağıdaki dize kaynağını
strings.xml
dosyasına ekleyin:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>