Parse.com是否有可能login使用Facebook,同时检查Facebook用户的电子邮件是否存在于用户parsing,如果它链接两者?

我在parsingiOS SDK时遇到以下问题。 在我的应用程序用户可以使用电子邮件(用户名)/密码或Facebooklogin。 当他们使用Facebook电子邮件(用户名)自动设置。 但是,如果用户首先使用电子邮件/密码login,登出后尝试使用Facebooklogin他们得到一个重复的帐户。 我在这种情况下的目标是将Facebook链接到以前的帐户。 有没有办法在创build新帐户之前检查潜在的新用户的电子邮件是否存在于分析数据库中,如果存在,那么将这两个帐户链接起来? 这样用户不必记得他们是否使用Facebook或电子邮件,他们可以使用无缝。

谢谢。

你需要的基本逻辑如下:

  1. 使用Facebookvalidation用户
  2. 获取您需要的附加信息 – 例如,从FacebookgraphicsAPI读取电子邮件,或者(在我的情况下)提示用户input电话号码(您无法从Facebook获得)
  3. 在Parse用户表中search与这条数据匹配的帐户(电子邮件地址,电话号码等)
  4. 如果find一个匹配项, 并且用户已经通过身份validation* ,则链接帐户并login该用户。
  5. 如果找不到匹配项,请使用电子邮件/电话标识为该用户创build一个新的Parse帐户

这里有更详细的概述: 合并由Facebook注册的用户和已经通过电子邮件注册的用户? 。 有样品的JS代码,但这个想法应该是相同的iOS。

*密切关注parsing器在最后一个答案中所说的内容。 如果Facebook用户声称拥有电子邮件地址或电话号码,则需要独立validation他们是否拥有该帐户(例如通过发送授权链接或代码)。

您可以在用户表上执行一个简单的查询,查看用户是否已经存在相同的用户名。 如果确实如此,则需要将Facebook数据链接到此帐户。 他们的文档概述了如何使用SDK来做到这一点: https : //parse.com/docs/ios_guide#fbusers-link/iOS

它将很容易地链接“用户”与Facebook帐户。

 NSArray *permissionsArray = @[ @"user_about_me", @"user_relationships", @"user_birthday", @"user_location"]; [PFFacebookUtils linkUser:user permissions:permissionsArray block:^(BOOL succeeded, NSError *error) { //do anything }];