5

parse.com用作我的应用程序的后端,它使用户能够通过他的 facebook 或 twitter 帐户登录。它还具有将 twitter/facebook 链接到他预先存在的帐户的功能。

这是问题所在:

如果用户通过他的帐户登录,则会在云上创建facebook一个新帐户。PFUser如果同一用户再次通过他的twitter帐户登录,PFUser则会在云上创建另一个用户。现在,如果用户想要将他的facebook帐户与他的twitter帐户相关联,parse.com则回复“此 Twitter 帐户已连接到另一个用户”。

我怎样才能PFUsers在这里合并两个?有人可以建议我解决这个问题的方法吗?

4

3 回答 3

4

你可以做一件事:

当您将当前用户与另一个 Facebook/Twitter 帐户链接时,您需要在某个时间点取消该用户的链接。假设您注销时需要检查当前用户是否与 Facebook/Twitter 链接?

如果您当前的用户与任何其他用户链接,您需要取消链接,以便您可以再次将 Facebook/Twitter 用户与任何其他用户链接,像这样

对于 Facebook 用户:

if([PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]){

                [PFFacebookUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){
                    if(!unlinkError){
                        // User unlinked
                    }else{
                       // Erro while unlink user
                    }
                }];
            }

对于推特用户:

if([PFTwitterUtils isLinkedWithUser:[PFUser currentUser]]){

              [PFTwitterUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){
                    if(!unlinkError){
                        // unlink user
                    }else{
                        // Error while unlink
                    }
}];
}
于 2013-04-27T09:11:53.523 回答
4

在没有看到任何代码的情况下,听起来您在PFTwitterUtils logInWithBlock尝试链接 Twitter 帐户时正在打电话。那将是错误的方法,因为它只会创建一个新的 PFUser,而不是使用通过 facebook 登录创建的现有 PFUser。

相反,您想要做的是使用该PFTwitterUtils方法将当前PFUser与 twitter 帐户链接起来。Parse 文档显示了执行此操作的以下代码。

PFUser *user = [PFUser currentUser];
if (![PFTwitterUtils isLinkedWithUser:user]) {
    [PFTwitterUtils linkUser:user block:^(BOOL succeeded, NSError *error) {
        if ([PFTwitterUtils isLinkedWithUser:user]) {
            NSLog(@"Woohoo, user logged in with Twitter!");
        }
    }];
}
于 2013-04-26T14:54:26.787 回答
3

遗憾的是,似乎不可能将 Facebook 或 Twitter 帐户链接到多个 PFUser。此外,似乎不可能再合并两个 PFUser 条目 - 请参阅Parse 的答案here

您可能想要做的是将数据严格保留在 PFUser 表中以用于授权目的,并将其余数据保留在新的专用 Parse 类中(例如 userData,由 PFUser 条目指向)。

从这个意义上说,您将能够使用多个指向同一个 userData 条目的 PFUser 条目。因此,如果您有一个先前存在的 PFUser 条目链接到 Parse 后端中的特定 Twitter 帐户,最好让用户登录到该特定 PFUser,然后将该条目指向您先前存在的 userData 条目。

于 2013-06-18T19:41:18.507 回答