我正在使用parse.com的Android API并添加了Facebook / Twitter登录支持。这很好。
棘手的部分似乎是 退出。
如果我使用Twitter登录我的应用程序:
ParseTwitterUtils.logIn(UserLoginActivity.this, twitterLoginCallback);
或使用Facebook:
ParseFacebookUtils.logInWithReadPermissionsInBackground(UserLoginActivity.this, null, facebookLoginCallback);
我在网络对话框中提示输入我的Twitter凭据,然后允许或拒绝访问我的应用。一旦我允许它,我能够成功登录,并且我可以访问我的屏幕名称。一切都很好!
当我尝试记录ParseUser的 out 时,我确实退出了。但是,如果我再次点击Facebook或Twitter登录按钮,我已经预先验证为我之前的帐户,我无法切换帐户。
我试过了:
我的登录逻辑简单地开始了:
ParseUser.logOut();
Parse.enableLocalDatastore(this);
Application
调用null
:https://stackoverflow.com/a/26338326/494356 ParseTwitterUtils.getTwitter().setAuthToken(null);
ParseTwitterUtils.getTwitter().setAuthTokenSecret(null);
AccessToken.setCurrentAccessToken(null);
使用Facebook SDK注销功能:
Profile.setCurrentProfile(null);
LoginManager.getInstance().logOut();
Session.closeAndClearTokenInformation()
根据建议here,曾经有{{1}}。但Facebook有Deprecated the Session class,它已不在SDK中。
我真的很感激任何答案或建议。即使你只能回答推特或Facebook,但不能同时回答,我仍然希望听到它。
答案 0 :(得分:0)
在我们的应用程序中,登录/注销过程适用于Facebook,电子邮件甚至自己的构建谷歌登录。我可以告诉你我在第一眼看到的差异,也许其中一个为你做了诀窍。
首先,我们不直接在代码中使用ParseUser
实例,而是使用MyUser
类扩展ParseUser
。
其次,登录逻辑封装在后台服务中,而不是直接在我们的Activity中调用。这可能不会解决问题。但是在后台服务中,我们还缓存MyUser
实例,如果需要则检索它并使用该实例注销用户(MyUser.logOut()
)。并且在注销后设置为null
。
最后但同样重要的是:您运行的是最新版本的Parse SDK吗?