Włącz logowanie automatyczne w aplikacjach i na stronach internetowych

Jeśli Twoja aplikacja, która korzysta z funkcji Smart Lock na hasła, korzysta z bazy danych użytkownika lub jeśli aplikacja bądź witryna korzystają z usług sfederowanych dostawców logowania, jako Logowania przez Google – możesz powiązać aplikację z witryną, aby użytkownicy zapisują swoje dane logowania raz, a następnie automatycznie logują się zarówno aplikacji i strony internetowej.

Aby powiązać aplikację z witryną, zadeklaruj powiązania, hostując plik JSON Digital Asset Links w Twojej witrynie, dodając link do pliku Digital Asset Link do pliku manifestu aplikacji.

Jeśli umieścisz w swojej witrynie deklarację dotyczącą linków cyfrowych, Twoją witrynę, aby udostępnić autouzupełnianie z aplikacją na urządzeniach z Androidem 8.0 lub nowszym.

Wymagania wstępne

Domena logowania w Twojej witrynie musi być dostępna przez HTTPS.

Powiąż aplikację z witryną

  1. Utwórz plik JSON Digital Asset Links.

    Aby np. zadeklarować, że witryny https://signin.example.com i aplikacja na Androida z nazwą pakietu com.example może współdzielić logowanie dane logowania, utwórz plik o nazwie assetlinks.json z następującymi treść:

    [{
      "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"
        ]
      }
     }]
    

    Pole relation jest tablicą jednego lub większej liczby ciągów tekstowych opisujących relacji. Deklarowanie, że aplikacje i witryny korzystają z tego samego loginu dane logowania, określ ciąg delegate_permission/common.get_login_creds

    Pole target to obiekt określający zasób, który zgodnie z deklaracją . Te pola identyfikują witrynę:

    namespace web
    site

    Adres URL witryny w formacie https://domain[:optional_port]; w przypadku na przykład https://www.example.com.

    domain musi być w pełni kwalifikowany. Wartość optional_port należy pominąć, jeśli używasz portu 443 w HTTPS.

    Elementem docelowym site może być tylko domena główna: nie można by ograniczyć powiązanie aplikacji do konkretnego podkatalogu. Nie dodawaj np. ukośnik na końcu adresu URL.

    Subdomeny nie są uważane za dopasowane: to znaczy, jeśli określisz atrybut domain jako www.example.com, domena Usługa www.counter.example.com nie jest powiązana z Twoją aplikacją.

    Te pola identyfikują aplikację na Androida:

    namespace android_app
    package_name Nazwa pakietu zadeklarowana w pliku manifestu aplikacji. Przykład: com.example.android
    sha256_cert_fingerprints Odciski cyfrowe SHA256 certyfikatu podpisywania aplikacji. Dostępne opcje użyj następującego polecenia, aby wygenerować odcisk cyfrowy:
    $ keytool -list -v -keystore my-release-key.keystore

    Zapoznaj się z informacjami o linkach do zasobów cyfrowych. .

  2. Umieść plik JSON protokołu Digital Assets Link w następującej lokalizacji na stronie domena logowania:

    https://domain[:optional_port]/.well-known/assetlinks.json

    Jeśli na przykład Twoja domena logowania to signin.example.com, hostuj plik JSON pod adresem https://signin.example.com/.well-known/assetlinks.json.

    Plik Digital Assets Link musi mieć typ MIME JSON. Upewnij się, serwer wysyła w odpowiedzi nagłówek Content-Type: application/json.

  3. Upewnij się, że Twój dostawca hostingu pozwala Google na pobranie Twojego linku do zasobu cyfrowego . Jeśli masz plik robots.txt, musi on zezwalać agentowi Googlebot na pobierz /.well-known/assetlinks.json. Większość witryn pozwala na automatyczny klient do pobierania plików w ścieżce /.well-known/, tak by pozostałe usługi mogą uzyskać dostęp do metadanych w tych plikach:

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

  4. Zadeklaruj powiązanie w aplikacji na Androida.

    1. Dodaj ten wiersz do pliku manifestu w <application>:

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. Dodaj zasób ciągu znaków asset_statements do pliku strings.xml. Ciąg znaków asset_statements to obiekt JSON, który określa Pliki (assetlinks.json) do wczytania. Musisz uciec od wszelkich apostrofów cudzysłowów używanych w ciągu znaków. Na przykład:

        <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. Opublikuj aplikację w Sklepie Google Play. muszą być dostępne publicznie. aby umożliwić promowanie powiązań.

  6. (Opcjonalnie) Wypełnij i prześlij Formularz połączenia z funkcją Smart Lock na hasła, aby potwierdzić, że korzystasz z tej usługi. z całego procesu. Od czasu do czasu Google sprawdza, czy powiązania przesłany za pomocą formularza faktycznie działa i może się z Tobą skontaktować w przypadku .

Po zakończeniu weryfikacji użytkownicy aplikacji będą mogli zapisać swoje dane logowania do aplikacji lub witryny i automatycznie logować się w obu tych usługach.

Przykład: powiązanie wielu aplikacji z witryną

Możesz powiązać wiele aplikacji z witryną, określając każdą aplikację w Plik Digital Assets Link. Aby na przykład powiązać com.example i com.example.pro aplikacje z witryną pod adresem https://signin.example.com/ – określ obie aplikacje w pliku JSON przechowywanym na 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"
    ]
  }
}]

Następnie zadeklaruj powiązanie w obu aplikacjach:

  1. Dodaj ten wiersz do pliku manifestu w <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Dodaj do pliku strings.xml ten zasób z ciągami znaków:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>
    

Przykład: powiązanie aplikacji z wieloma witrynami

Możesz powiązać aplikacje z wieloma witrynami, określając każdą z nich w Plik Digital Assets Link i hosting go w każdej witrynie. Aby na przykład: powiązanie aplikacji com.example i com.example.pro z witryną pod adresem https://signin.example.com/ i https://m.example.com/, określ aplikacje i obie witryny w pliku JSON przechowywanym na 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": "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"
    ]
  }
}]

Następnie w pliku JSON przechowywanym na https://m.example.com/.well-known/assetlinks.json, uwzględnij podstawowy Plik linków zasobów:

[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]

Na koniec zadeklaruj powiązanie w obu aplikacjach:

  1. Dodaj ten wiersz do pliku manifestu w <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Dodaj do pliku strings.xml ten zasób z ciągami znaków:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>