6 votes

Utilisation du compte Google comme identifiant... et ensuite ?

Je suis en train de développer une application pour Android, qui aura un côté serveur de type api. Et cette application aura des mécanismes de connexion pour les utilisateurs. Je veux utiliser un compte google/fb/twitter comme information de connexion, car le but de l'application est très social.

J'ai déjà lu qu'il était possible d'utiliser le compte Google stocké dans le téléphone comme vérification de l'utilisateur ( Comment utiliser les comptes Google pour se connecter ). Le problème est que je ne sais pas ce qu'il faut faire ensuite ? D'après ce que j'ai compris, le gestionnaire de compte va finalement me donner un jeton. Que dois-je en faire ? Comment informer le serveur que l'utilisateur s'est connecté ? Comment puis-je stocker ce jeton, car j'ai compris que ce jeton pourrait changer s'il est invalidé après un certain temps...

Et autre chose. Que dois-je faire lorsque l'utilisateur entre dans son compte G pour la première fois ? Je veux récupérer son avatar et son nom d'affichage G, par exemple, et les stocker sur le serveur, évitant ainsi à l'utilisateur un grand nombre de clics ? Est-ce que je les envoie d'une manière ou d'une autre depuis le téléphone ou est-ce que je les récupère d'une manière ou d'une autre depuis le serveur ?

Ces mêmes questions pourraient se poser pour FB plus tard, également.

J'espère avoir posé ma question correctement, car il s'agit d'une question un peu plus générale...

TIA.

2voto

thomas88wp Points 801

Je pense cette question couvre exactement ce que vous demandez.

Pour moi, la meilleure solution était couverte dans este sur le blog. Il ne fonctionne qu'avec des comptes Google et suppose que vous utilisez UserService du côté d'AppEngine, mais je pense que cela fonctionne bien. J'espère que cela vous aidera.

1voto

ethrbunny Points 5487

Google utilise OpenId tandis que FB a son propre système. Vous aurez besoin de codespaths différents pour les deux.

http://www.sozkan.com/blog/2010/09/24/very-quick-openid-integration-tutorial/

Il est vrai que cette méthode repose sur les URL pour gérer les données. Vous devrez l'intégrer dans votre code si vous voulez que tout se passe en interne. Une fois que vous avez le jeton, vous pouvez informer votre code côté serveur de ce qu'il est, de la durée de vie, etc.

Informations sur les différences : http://thenextweb.com/socialmedia/2010/11/04/facebook-connect-oauth-and-openid-the-differences-and-the-future/

0voto

Phlip Points 2061

Juste pour terminer cette question (périmée), et garer mon bout de code quelque part, j'ai commencé à me connecter avec Google en utilisant un fichier de type PreferenceScreen Activité avec cette onCreate() code :

    ArrayList<String> list = new ArrayList<String>();
    list.add("https://www.googleapis.com/auth/userinfo.profile");
    final GoogleAccountCredential credential = 
        GoogleAccountCredential.usingOAuth2(getApplicationContext(), list); 
    Preference acctValue = findPreference("GMail");  // A <Preference> in the XML...

    acctValue.setOnPreferenceClickListener(new OnPreferenceClickListener(){
        @Override
        public boolean onPreferenceClick(Preference preference) {
            startActivityForResult(credential.newChooseAccountIntent(), 1);
            return false;
        }
    });

Et ils ont exigé d'ajouter ces personnages louches à mon libs dossier :

google-api-client-android-1.17.0-rc.jar
google-play-services.jar
google-api-client-1.17.0-rc.jar
google-http-client-1.17.0-rc.jar

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X