PFUser.currentUser
資格情報がまだ有効かどうかを確認するコードを AppDelegate.m に書きたいと思います。私がこれを行っている理由は、このシナリオのためです。ユーザーが正常にログインし、currentUser がそのユーザーの基本情報を取得したとします。ユーザーがある時点でパスワードを変更した場合、アプリケーションの起動時に、それらの資格情報が最新かどうかを確認する必要があります。電子メールとパスワードが表のものと一致しない場合、ユーザーをログアウトする必要があります。
私はこれをやろうとしましたが、ログインに使用される電子メールの実際の値を持っているPFUser.currentUser.password
間、明らかに常にnullに設定され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 になったので、これが問題であることがわかりました。