我正在使用parse.com的Android API并添加了Facebook/Twitter登录支持.这工作正常.
棘手的部分似乎正在退出.
如果我使用Twitter登录我的应用程序:
ParseTwitterUtils.logIn(UserLoginActivity.this, twitterLoginCallback);
或使用Facebook:
ParseFacebookUtils.logInWithReadPermissionsInBackground(UserLoginActivity.this, null, facebookLoginCallback);
我在网络对话框中提示输入我的Twitter凭据,然后允许或拒绝访问我的应用程序.一旦我允许它,我能够成功登录,并且我可以访问我的屏幕名称.一切都很好!
当我尝试登录了我的ParseUser的,我确实会退出.但是,如果我再次单击Facebook或Twitter登录按钮,我会预先验证为我之前的帐户,我无法切换帐户.
我试过了:
检查Chrome和浏览器,但都没有登录Twitter.
退出原生Twitter/Facebook应用程序
我的登录逻辑简单地开始:
ParseUser.logOut();对于Twitter,我尝试过
卸载我的应用程序 - 这确实解决了它,但不是一个理想的解决方案.
不Parse.enableLocalDatastore(this);
按照我的Application
建议打电话:https://stackoverflow.com/a/26338326/494356
按照此处的建议取消链接Twitter帐户:https://stackoverflow.com/a/34052718/494356.这也有每次创建一个新的ParseUser的坏副作用(但仍然是相同的Twitter帐户)
我尝试将权限从"只读"更改为"读写",如/sf/ask/17360801/所示.(为什么这对我来说无关紧要对我没有意义)
我试过将AuthToken设置为 null
ParseTwitterUtils.getTwitter().setAuthToken(null);
ParseTwitterUtils.getTwitter().setAuthTokenSecret(null);
对于Facebook,我试过了
卸载我的应用程序-这并没有解决问题.
使用Facebook SDK注销功能:
AccessToken.setCurrentAccessToken(null);
Profile.setCurrentProfile(null);
LoginManager.getInstance().logOut();
曾经有一Session.closeAndClearTokenInformation()
所建议的在这里.但是Facebook已经弃用了Session类,它不再在SDK中了.
按照此处的建议取消关联Facebook帐户.这又导致重复的ParseUsers,我仍然可以使用保存的凭据登录.
我真的很感激任何答案或建议.即使你只能回答推特或Facebook,但两者都不能回答,我仍然希望听到它.