Uygulamalarda ve web sitelerinde otomatik oturum açmayı etkinleştirin.

Şifreler için Smart Lock'u 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 uygulamayı web sitesiyle ilişkilendirebilirsiniz. Böylece kullanıcılar, kimlik bilgilerini bir kez kaydettikten sonra hem uygulamada hem de web sitesinde otomatik olarak oturum açarlar.

Bir uygulamayı bir web sitesiyle ilişkilendirmek için web sitenizde 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 bildirin.

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 verilerini paylaşmasını da sağlarsınız.

Ön koşullar

Web sitenizin oturum açma alanı HTTPS üzerinden kullanılabilir olmalıdır.

Uygulamanızı web sitenizle ilişkilendirme

  1. Digital Asset Links JSON dosyası oluşturun.

    Örneğin, https://signin.example.com web sitesinin ve com.example paket adına sahip bir Android uygulamasının oturum açma kimlik bilgilerini paylaşabileceğini beyan etmek için aşağıdaki içeriğe sahip assetlinks.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ı beyan etmek için delegate_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ı ve HTTPS için 443 numaralı bağlantı noktası kullanılırken optional_port atlanmalıdır.

    site hedefi yalnızca bir kök alan olabilir: Uygulama ilişkilendirmesini belirli bir alt dizinle sınırlayamazsınız. URL'ye eğik çizgi gibi bir yol eklemeyin.

    Alt alan adları eşleşmiş olarak kabul edilmez. Yani domain alanını 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 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 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.

  2. 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ı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.

  3. 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 dosyasını almasına izin vermelidir. Çoğu site, diğer hizmetlerin bu dosyalardaki meta verilere erişebilmesi için otomatik aracıların /.well-known/ yolundaki dosyaları almasına izin verebilir:

    User-agent: *
    Allow: /.well-known/
    

  4. İlişkilendirmeyi Android uygulamasında beyan etme.

    1. <application> altındaki manifest dosyasına şu satırı ekleyin:

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. strings.xml dosyasına bir asset_statements dize kaynağı ekleyin. asset_statements dizesi, yüklenecek assetlinks.json dosyalarını belirten bir JSON nesnesidir. Dizede kullandığınız kesme işareti ve tırnak işaretlerini kullanmaktan 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
      
  5. Uygulamayı Google Play Store'da yayınlayın. İlişkilendirmelerin alınabilmesi için herkese açık kanalda yayınlanması gerekir.

  6. (İsteğe bağlı) Süreci tamamladığınızı belirtmek üzere Şifreler için Smart Lock ilişki formunu doldurup gönderin. Google, form aracılığıyla gönderilen satış ortaklarının gerçekten işe yarayıp yaramadığını düzenli olarak kontrol eder ve bir sorun yaşanması halinde 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 birden çok uygulamayı bir web sitesiyle 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:

  1. <application> altındaki manifest dosyasına şu satırı ekleyin:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. 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

Uygulamaları Digital Assets Link dosyasında her bir web sitesini belirterek ve dosyayı her web sitesinde barındırarak 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/ adresindeki siteyle ilişkilendirmek için hem uygulamaları hem de her iki siteyi https://signin.example.com/.well-known/assetlinks.json da 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": "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, her iki uygulamada da ilişkilendirmeyi belirtin:

  1. <application> altındaki manifest dosyasına şu satırı ekleyin:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. 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>