我想在 AppDelegate.m 中编写代码来检查PFUser.currentUser
凭据是否仍然有效。我这样做的原因是针对这种情况。假设用户登录成功,现在 currentUser 拥有该用户的基本信息。如果用户在某个时间更改了密码,当应用程序启动时,它应该检查这些凭据是否是最新的。如果电子邮件和密码与表中的不匹配,则应将用户注销。
我试图这样做,但显然PFUser.currentUser.password
总是设置为空,而PFUser.currentUser.email
电子邮件的实际值用于登录。如何在不访问密码的情况下实现此验证?
这是我的指导代码:
PFQuery *query = [PFQuery queryWithClassName:@"User"];
[query whereKey:@"objectId" equalTo: PFUser.currentUser.objectId];
[query whereKey:@"password" equalTo: PFUser.currentUser.password];
[query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
if (!object) {
/*Credentials changed! Logout user and request login again*/
NSLog(@"Credentials Changed!");
[PFUser logOut];
[[[navigationController viewControllers] objectAtIndex:0] performSegueWithIdentifier:@"loginSegue" sender:self];
}
else {
/*Credentials are still valid..proceed!*/
NSLog(@"Credentials Correct!");
[[[navigationController viewControllers] objectAtIndex:0] performSegueWithIdentifier:@"skipLoginSegue" sender:self];
}
}];
当这失败时,我尝试 NSLog 密码并得到 null 所以我明白这是问题所在。