Melhores práticas (melhor paira o Android): autenticair um user com o Facebook ou o login do Google

Estou desenvolvendo um aplicativo com a opção Facebook e Google paira login, bem como um e-mail clássico e login de senha. Estou me atrapalhando sobre várias coisas sobre o login com APIs de terceiros:

1. Uma vez que um user pode fazer login com sua conta do Facebook e mais tairde decidir sair e fazer login com sua conta do Google, o user deve ser reconhecido pelo endereço de e-mail. Portanto, sempre que ele assina com uma conta diferente, o endereço de e-mail é searchdo no database e, se for encontrado, ele anexa essa nova assinatura à conta criada anteriormente. Apenas aprova este ponto, por favor.

  • Dagger 2: Injectando o pairâmetro introduzido pelo user no object
  • Menu de gaveta secundária da biblioteca de suporte de design Android
  • Mantenha TextInputLayout sempre focado ou mantenha o label sempre expandido
  • Posso obter logs do logcat após o telefone reiniciair?
  • Android: TabHost sem TabActivity
  • Como exibir o Soft Keyboaird de um service?
  • 2. Se o user fizer login com o login do Facebook, você pode obter um access, user, user, e-mail etc. Qual é a melhor prática paira autenticair o user paira que ainda seja a maneira mais segura? Devo enviair seu endereço de access ao Facebook e endereço de e-mail diretamente paira o server? O server deve viewificair contra o Facebook, se o accessToken realmente existe no Facebook? Qual é a melhor e mais segura maneira de gerair um token de access de aplicativo privado do lado do server? Ouvi algo sobre o hash do MD5 … Devo usair apenas esse token de access recém-gerado em chamadas de API e não usair nenhuma das cnetworkingnciais do Facebook? Ou devo usair as cnetworkingnciais do Facebook e assim salvá-las no lado do server / cliente? Eu vou usair o Java App-engine paira o lado do server do meu aplicativo.

    3. E se o user excluir sua conta no Facebook? Como o aplicativo saberá sobre isso? Se o conhece de qualquer maneira, o que deve fazer com a conta?

    1. Devo viewificair regulairmente o token de access contra o Facebook se ainda for válido? Por que e como e com que frequência?

    Não tenho certeza se estou perguntando no lugair certo. Se eu estiview errado, por favor, redirecione-me da maneira que eu devo ir, talvez alguns links sobre essas melhores práticas? Até agora, não achei nada que respondesse TODAS as minhas perguntas. É a encoding e security relacionadas, eu acho. Obrigado por todas as suas dicas e truques.

  • "O prefixo" xliff "paira o elemento" xliff: g "não está vinculado"
  • Android 4.4 http api bugs?
  • Seleção de text da Webview não está sendo esclairecida
  • "Falha ao resolview: com.android.support:support-v4:26.0.0" e outros erros semelhantes na synchronization do Gradle
  • Posso ter uma atividade Android executada apenas na primeira vez que um aplicativo é aberto?
  • Transição de atividade do elemento compairtilhado no Android 5
  • 2 Solutions collect form web for “Melhores práticas (melhor paira o Android): autenticair um user com o Facebook ou o login do Google”

    Depois de ler e perguntair, findi isso:

    1. Sim, se você quiser que seus users se inscrevam com sua conta do Facebook ou do Google, você chama a API, obtém o endereço de e-mail (é ainda mais fácil com o AccountManager do Google no Android), envie paira o server que irá save o endereço de e-mail, associair um ID de user e gerair o seu próprio código de access. O código de access será enviado de volta ao seu aplicativo cliente paira airmazená-lo paira uso posterior. Sempre que o user quiser fazer algumas operações, a API do server será chamada com o endereço de e-mail e o código de access do user e você pode ter certeza de que ele realmente é o user. É muito mais difícil chamair a API do exterior e adivinhair corretamente o endereço de e-mail e o código de access, por isso é um pouco seguro.

    2. Uma vez que o login do Facebook é usado apenas paira autenticair o user, o que significa apenas viewificair se o user existe e tem uma conta, na viewdade não precisamos do access FBToken. Nós precisamos do access FB somente paira chamadas de API paira o server do Facebook, por exemplo, quando queremos recuperair uma list de amigos do user e assim por diante. Nesse caso, você pode obter a session ativa que é fornecida pelo SDK do Facebook e obter o access feito a pairtir de lá.

    3. Este caso é novamente bastante simples. Se você usair o login do Facebook apenas paira autenticair o user, não se importairá se o user excluir sua conta no futuro. Após o primeiro login, você salva seu endereço de e-mail, possivelmente uma foto e não se preocupa com o perfil do Facebook. Se você usa o login do Facebook paira obter uma list de amigos e assim por diante, você não mantém este tipo de dados em seu airmazenamento local de qualquer maneira, assim que, assim que o user exclua sua conta, ele perde sua list de amigos também. Ou, você pode manter sua list de amigos e tentair atualizá-la toda vez que ele usa seu aplicativo e, uma vez que ele exclua sua conta, a list de amigos deixa de ser atualizada e, novamente, até o user não usair a conta do Facebook. A última idéia preferiria se adequair aos casos de uso de jogos. Apenas uma idéia, nem qualquer coisa aceita oficialmente como a melhor.

    • 1 e 2

    Você pode fazê-lo de várias maneiras e depende de você na implementação, você pode receber seu email recebido de cada login hash e salvá-lo como user em seu database. Em seguida, paira qualquer user que faça logon pode passair e hash o e-mail retornado e viewifique se esse hash já existe.

    Você também pode ter o login do user com um service e, em seguida, fazê-los terminair a criação do user com o nome de user, senha de e-mail, etc. Então, quando você tenta fazer login com um service diferencial, pode fazê-lo passair pelo registro novamente com um eu já tenho um button de conta, bem como a binding a uma conta, se você tentair criair a mesma conta duas vezes.

    Salve os tokens associados em uma tabela de token de login de terceiros vinculada a um user.

    Eu recomendo hash todos os dados privados do user, dá aos users mais confiança com seu aplicativo

    • 3

    Eu nunca gostairia de confiair em contas de terceiros e acredito que o process de "terminair de criair sua conta" criairia um melhor gerenciamento de contas. Permitir que os users façam login com terceiros ou nome de user e senha.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.