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şı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

  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 bildirmek 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ı bildirmek 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ı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 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 ş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.

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

  3. 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/
    

  4. Android uygulamasında ilişkilendirmeyi 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 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ş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
      
  5. Uygulamayı Google Play Store'da yayınlayın. İlişkilendirmelerin alınması için bu değerin herkese açık kanalda yayınlanması gerekir.

  6. (İ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:

  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 ç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:

  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>