0

J'ai une application qui fait le login/mot de passe canonique et l'inscription au serveur.Android Authenticator et FB

Note: Je dois faire le login/auto-login chaque fois que l'utilisateur ouvre l'application.

Maintenant, je veux ajouter une connexion/inscription avec fb.

Actuellement, j'utilise le gestionnaire de compte Android avec un authentificateur personnalisé où j'économise le courrier et le mot de passe. Si un utilisateur se connecte avec fb je n'aurai pas de mot de passe à enregistrer dans le compte: je dois enregistrer quelque chose d'autre ou je vais laisser ce champ vide? Dans le dernier cas si je vais ajouter un autre système d'authentification comme Twitter, comment puis-je savoir à quel système appartient l'utilisateur?

En parlant du serveur, quelles données je vais devoir lui envoyer pour authentifier les utilisateurs Fb? Je pensais que sur le couple email/id, mais il ne semble pas trop fort pour moi ...

Merci pour votre temps

Répondre

0

comment puis-je savoir à quel système, l'utilisateur appartient

Utilisez SharedPreferences afin de sauver quel système l'utilisateur appartient à:

public static int TWITTER_ACCOUNT = 0; 
public static int FB_ACCOUNT = 1; 
onLogin(){ 
    if(fb){ 
     SharedPreferences sp = getSharedPreferences(context); 
     sp.edit().putString(PREF_ACTIVE_ACCOUNT, FB_ACCOUNT).apply(); 
    } 
} 

dont les données que je vais devoir envoyer à lui pour authentifier les utilisateurs Fb

Pourquoi ne pas envoyer le access_token?

Si un utilisateur de se connecter avec fb je ne vais pas avoir un mot de passe pour enregistrer dans le compte

Il suffit de garder le jeton d'accès. vous devez utiliser le jeton d'accès fb pour obtenir des données du FB ou vous connecter à votre système. un coup d'oeil à oauth2

Aussi ne noter que vous manquez le point si vos utilisateurs ont besoin de se connecter à chaque fois que l'application commence

Pour enregistrer des données utilisateur dans AccountManager utilisation:

public void setUserData(final Account account, final String key, final String value) 
public String getUserData(final Account account, final String key) 
+0

Je n » Je ne peux pas croire qu'il n'y a pas de système pour enregistrer toutes les données du compte utilisateur dans le gestionnaire de compte. J'ai parlé de connexion et AUTOlogin. J'ai besoin d'authentifier l'utilisateur sur mon serveur à chaque fois pour mettre à jour le jeton GCM pour les notifications push. –

+1

Je ne comprends pas votre commentaire. Si vous ne voulez pas utiliser SP, vous devriez le mentionner dans votre question. vous pouvez enregistrer les données utilisateur dans AccountManager en utilisant 'public static final String KEY_USERDATA =" userdata ";' – royB