Se o login do One Tap atender às suas necessidades, considere usá-lo. One Tap tem uma experiência de usuário atualizada e outras melhorias.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Ative o login automático em aplicativos e sites

Se seu aplicativo que usa Smart Lock para senhas compartilha um banco de dados de usuário com seu site - ou se seu aplicativo e site usam provedores de login federados, como o Google Sign-In - você pode associar o aplicativo ao site para que os usuários salvem suas credenciais uma vez e, em seguida, faça login automaticamente no aplicativo e no site.

Para associar um aplicativo a um site da Web, declare associações hospedando um arquivo JSON do Digital Asset Links em seu site e adicionando um link para o arquivo do Digital Asset Link ao manifesto do seu aplicativo.

Ao hospedar uma declaração de links de ativos digitais em seu site, você também permite que seu site compartilhe dados de preenchimento automático com seu aplicativo quando executado no Android 8.0 e mais recente.

Pré-requisitos

O domínio de login do seu site deve estar disponível por meio de HTTPS.

Associe seu aplicativo ao seu site

  1. Crie um arquivo JSON do Digital Asset Links .

    Por exemplo, para declarar que o site https://signin.example.com e um aplicativo Android com o nome de pacote com.example podem compartilhar credenciais de login, crie um arquivo denominado assetlinks.json com o seguinte conteúdo:

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

    O campo de relation é uma matriz de uma ou mais strings que descrevem a relação que está sendo declarada. Para declarar que aplicativos e sites compartilham credenciais de login, especifique a string delegate_permission/common.get_login_creds .

    O campo de target é um objeto que especifica o ativo ao qual a declaração se aplica. Os campos a seguir identificam um site:

    namespace web
    site

    O URL do site, no formato https:// domain [: optional_port ] ; por exemplo, https://www.example.com .

    O domain deve ser totalmente qualificado. E optional_port deve ser omitido ao usar a porta 443 para HTTPS.

    Um destino de site só pode ser um domínio raiz: você não pode limitar uma associação de aplicativo a um subdiretório específico. Não inclua um caminho no URL, como uma barra final.

    Os subdomínios não são considerados correspondentes: ou seja, se você especificar o domain como www.example.com , o domínio www.counter.example.com não será associado ao seu aplicativo.

    Os campos a seguir identificam um aplicativo Android:

    namespace android_app
    package_name O nome do pacote declarado no manifesto do aplicativo. Por exemplo, com.example.android
    sha256_cert_fingerprints As impressões digitais SHA256 do certificado de assinatura do seu aplicativo. Você pode usar o seguinte comando para gerar a impressão digital:
    $ keytool -list -v -keystore my-release-key.keystore

    Consulte a referência de Links de ativos digitais para obter detalhes.

  2. Hospede o arquivo JSON de link de ativos digitais no seguinte local no domínio de login:

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

    Por exemplo, se seu domínio de signin.example.com for signin.example.com , hospede o arquivo JSON em https://signin.example.com/.well-known/assetlinks.json .

    O tipo MIME para o arquivo Digital Assets Link precisa ser JSON. Certifique-se de que o servidor envie um cabeçalho Content-Type: application/json na resposta.

  3. Certifique-se de que seu host permite que o Google recupere seu arquivo de Link de ativo digital. Se você tiver um arquivo robots.txt , ele deve permitir que o agente do Googlebot recupere /.well-known/assetlinks.json . A maioria dos sites pode simplesmente permitir que qualquer agente automatizado recupere arquivos no caminho /.well-known/ para que outros serviços possam acessar os metadados nesses arquivos:

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

  4. Declare a associação no aplicativo Android.

    1. Adicione a seguinte linha ao arquivo de manifesto em <application> :

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. Adicione um asset_statements sequência strings.xml arquivo strings.xml . A sequência asset_statements é um objeto JSON que especifica os arquivos assetlinks.json a serem carregados. Você deve escapar de quaisquer apóstrofos e aspas que usar na string. Por exemplo:

        <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. Publique o aplicativo na Google Play Store. Precisa ser divulgado em canal público para que as associações sejam levantadas.

  6. (Opcional) Preencha e envie o formulário de afiliação do Smart Lock para senhas para indicar que você passou pelo processo. O Google verifica periodicamente se as afiliações enviadas por meio do formulário realmente funcionam e pode entrar em contato com você em caso de problemas.

Quando a verificação for concluída, os usuários de seu aplicativo podem salvar suas credenciais em seu aplicativo ou site e ser automaticamente conectado a ambos.

Exemplo: associar vários aplicativos a um site

Você pode associar vários aplicativos a um site, especificando cada aplicativo no arquivo Digital Assets Link. Por exemplo, para associar o com.example e com.example.pro aplicativos com o site em https://signin.example.com/ , especifique ambos os aplicativos no arquivo JSON hospedados no 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"
    ]
  }
}]

Em seguida, declare a associação em ambos os aplicativos:

  1. Adicione a seguinte linha ao arquivo de manifesto em <application> :

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Adicione o seguinte recurso de string ao arquivo strings.xml :

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

Exemplo: associar aplicativos a vários sites

Você pode associar aplicativos a vários sites, especificando cada site no arquivo Digital Assets Link e hospedando o arquivo em cada site. Por exemplo, para associar os com.example e com.example.pro aplicativos com o site em https://signin.example.com/ e https://m.example.com/ , especifique ambos os aplicativos e ambos os sites na Arquivo JSON hospedado em 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"
    ]
  }
}]

Em seguida, no arquivo JSON hospedado em https://m.example.com/.well-known/assetlinks.json , inclua o arquivo Digital Asset Links principal:

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

Finalmente, declare a associação em ambos os aplicativos:

  1. Adicione a seguinte linha ao arquivo de manifesto em <application> :

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Adicione o seguinte recurso de string ao arquivo strings.xml :

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