解析 iOS SDK:如何持久登录?

Posted

技术标签:

【中文标题】解析 iOS SDK:如何持久登录?【英文标题】:Parse iOS SDK: How to persist login? 【发布时间】:2014-06-13 19:36:50 【问题描述】:

Senario = 我有一个带有根视图控制器的应用程序,如果 [PFUser currentUser] 为 false(使用 PFLoginViewController - 以编程方式呈现),它会立即显示登录屏幕。如果有 currentUser,应用程序将执行到应用程序的“主”页面的 segue。如果用户成功登录,“主”页面会显示来自 Facebook 或 Twitter 的用户信息(取决于登录选项)。这两种登录类型仅限 Facebook 和 Twitter。

if (![PFUser currentUser]) 
    // Create the log in view controller
    PFLogInViewController *logInViewController = [[PFLogInViewController alloc] init];
    [logInViewController setDelegate:self];
    [logInViewController setFields:PFLogInFieldsFacebook | PFLogInFieldsTwitter];

    logInViewController.facebookPermissions = @[@"public_profile, user_friends, email, publish_stream"];
    logInViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"light"]];

    [logInViewController.logInView setLogo:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo_iphone.png"]]];
    [logInViewController.logInView.logo setAutoresizingMask:UIViewAutoresizingNone];

    // Present the log in view controller
    [self presentViewController:logInViewController animated:YES completion:NULL];



else 

    [self performSegueWithIdentifier:@"main" sender:self];

问题 = 当我构建并运行我的应用程序或退出应用程序并重新打开它时,它所做的第一件事就是转到“主”页面(意味着它检测到一个 currentUser)。但是用户信息没有显示在“主”页面中(它不会持续从 Facebook 登录 - 我认为是 Facebook 访问令牌)。

问题 = 我如何从 Parse AND Facebook 或 Twitter 保留登录用户?

谢谢大家!

【问题讨论】:

【参考方案1】:

我之前遇到过类似的问题,在登录 Facebook 并获得有效的 PFUser 后,退出并重新打开应用程序会导致 PFUser 失去其大部分属性。

原因是我在添加这些属性后在 PFUser 上使用了 saveEventually。不幸的是, saveEventually 不会像您期望的那样在本地保存数据。我不确定这是错误还是功能,但您可以使用任何其他保存方法,例如 saveInBackground,并且所有 PFUser 属性最终都应该保留到下一次应用启动。

【讨论】:

我也想通了。不知道你在你的情况下遇到了什么问题,但在我的情况下,问题是几件事。第一个解析已经持续登录,所以这不是问题,但我一直担心认为它是。第二,我使用了错误的 if 语句来检查 Facebook 和我的用户之间的链接。我没有在 if 语句中使用正确的条件。我应该说“if ([PFFacebookUtils isLinkedWithUser:[[PFUser] currentUser])”,如果您使用 Twitter,那么 Twitter 也是如此。完美运行。

以上是关于解析 iOS SDK:如何持久登录?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 iOS Facebook SDK 2.4 保持登录状态

如何使用 facebook ios sdk for iphone 实现单点登录 (SSO)

如何使用 iOS SDK 从 ASMX Web 服务中获取和解析 JSON?

如何在 IOS SDK 中解析网站中的所有图像

登录并再次授权时如何在iOS SDK中的Facebook应用程序中获取Facebook帐户的更改?

如何通过 facebook SDK 在 iOS 中获取用户名和密码