Android 验证器和 FB

Android Authenticator and FB

我有一个应用程序可以执行规范 email/password 登录和注册到服务器。

注意:每次用户打开应用程序时,我都需要进行登录/自动登录。

现在我想用fb添加login/signup。

目前我正在使用 android 客户管理器和自定义验证器,我在其中保存邮件和密码。如果用户使用 fb 登录,我将不会在帐户中保存任何密码:我必须保存其他内容,否则我会将该字段留空?在后者中,如果我添加另一个身份验证系统作为 Twitter,我怎么知道用户属于哪个系统?

关于服务器,我必须向其发送哪些数据以验证 Facebook 用户的身份?我想到了这对夫妇email/id,但对我来说似乎并不太强烈......

感谢您的宝贵时间

how can I know to which system the user belong

使用 SharedPreferences 来保存用户属于哪个系统:

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();
   }
}

which data I'll have to send to it to authenticate Fb users

为什么不发送 access_token

If a user log in with fb I will not have any password to save in the account

只保留访问令牌。您应该使用 fb 访问令牌从 FB 获取数据或登录到您的系统。看看 oauth2

另请注意,如果您的用户每次启动应用程序时都需要登录,那么您就错过了重点

要在 AccountManager 中保存用户数据,请使用:

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