【问题标题】:How to logout/change Twitter account with Parse如何使用 Parse 注销/更改 Twitter 帐户
【发布时间】:2016-02-23 21:53:37
【问题描述】:

我知道如何登录:

ParseTwitterUtils.logIn(loginView.getCurrentContext(), new LogInCallback() {
    @Override
    public void done(ParseUser parseUser, ParseException e) {
        if (e == null) {
            String welcomeMessage = "";
            if (parseUser.isNew()) {
                welcomeMessage = "Hello new guy!";
            } else {
                welcomeMessage = "Welcome back!";
            }
            loginView.showLoginSuccess(parseUser, welcomeMessage);
        } else {
            String errorMessage = "Seems we have a problem : " + e.getLocalizedMessage();
            loginView.showLoginFail(errorMessage);
        }
    }
});

然后退出:

ParseUser.logOutInBackground(new LogOutCallback() {
    @Override
    public void done(ParseException e) {
        if (e == null) {
            homeView.goLogin(true, "See you soon");
        } else {
            homeView.goLogin(false, "Error detected : " + e.getLocalizedMessage());
        }
    }
});

但是当我想再次登录时,我没有提示对话框要求我选择帐户(我使用webview,因为模拟器上没有安装 Twitter 应用程序)。

如何使用 Twitter 登录真正从 Parse 注销?

【问题讨论】:

  • 当您在注销后尝试重新登录时,public done(ParseException e) 函数中的任何代码是否运行?
  • 是的,它可以工作,但我无法选择帐户,它不再显示登录屏幕
  • 这个还有问题吗?
  • 是的。但我认为这是正常的过程。但我认为,这很糟糕
  • @Tsunaze 我的回答有帮助吗?我认为这确实是问题所在。

标签: android twitter parse-platform


【解决方案1】:

在iOS中,你可以在PFOauth1FlowDialog.m中修改Parse的源代码

- (void)loadURL:(NSURL *)url queryParameters:(NSDictionary *)parameters   {
    NSMutableDictionary *_parameter = [[NSMutableDictionary alloc] init];
    [_parameter setObject:@"true" forKey:@"force_login"];
    [_parameter addEntriesFromDictionary:parameters];
    _loadingURL = [[self class] _urlFromBaseURL:url queryParameters:_parameter];
    NSURLRequest *request = [NSURLRequest requestWithURL:_loadingURL];
    [_webView loadRequest:request];
}

那么一切都应该可以正常工作,这也应该在 Android 中工作。

【讨论】:

    【解决方案2】:

    使用 ParseTwitterUtils 中的取消链接函数: https://parse.com/docs/android/api/com/parse/ParseTwitterUtils.html#unlink(com.parse.ParseUser)

    这将删除 twitter 帐户和解析用户之间的链接。

    混淆似乎源于 api 如此简单的事实。

    您在登录中所做的是将 twitter 帐户与解析用户相关联并以该解析用户身份登录。那么当你退出时,你只是退出了 parse 用户,而 twitter 帐户仍然链接到 parse 用户。因此,当您再次登录时,它会自动使用 twitter 帐户作为解析用户登录。

    【讨论】:

    • 我稍后会尝试一下。但这是否意味着当你用 Twitter 登录时它会一次又一次地创建另一个用户?
    • 是的,它会这样做。我想我对您的申请了解不够,无法提供帮助。您是否试图确保它每次都通过 Twitter 重新验证?一个可能的解决方案是通过 enableAutomaticUser() 使用匿名解析用户,然后仅当用户链接到 Twitter 帐户时才将用户视为已登录(使用“登录”链接并取消“注销”链接)。
    猜你喜欢
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2019-04-14
    • 2012-06-25
    • 1970-01-01
    • 2021-08-23
    相关资源
    最近更新 更多