我在通过 Facebook 登录或注册时正确接收 PFUser。我的权限数组:
NSArray *permissionsArray = @[ @"user_about_me",@"email"];
在 Parse Data 浏览器中,我可以看到使用一些长字符串用户名和正确的 authData 等创建了一个用户。但是电子邮件字段仍然是空的。
我是否需要单独调用来为新创建的 PFUser 填写电子邮件字段?如果是,那么正确的步骤是什么。
另一个问题,Parse.com 中的 facebook 身份验证用户的忘记密码机制如何工作?我是否需要先通过调用图形 API 来填充电子邮件值,然后使用该电子邮件地址来实现忘记密码功能?
最佳答案
您需要单独调用来填充电子邮件属性。用户通过身份验证后,您可以调用 的 startForMeWithCompletionHandler:
方法 FBRequestConnection 类获取用户信息,然后保存到当前用户。您的调用应如下所示:
NSArray *permissionsArray = @[ @"user_about_me",@"email"];
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
if (!error && user) {
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
[[PFUser currentUser] setObject:[result objectForKey:@"email"]
forKey:@"email"];
[[PFUser currentUser] saveInBackground];
}
}];
}
}];
关于Facebook用户的忘记密码,没有意义,因为如果用户忘记了密码,就应该在Facebook上修改。但是,如果您调用 requestPasswordResetForEmail:
方法,由于电子邮件存在,它会向用户发送更改密码的说明。考虑到 logInWithUsername:password:
使用属性 username 来登录用户,而不是电子邮件,并且您的应用中的 Facebook 用户可能不知道该值.
关于ios - Parse.com - 在使用 Facebook 身份验证时更新 PFUser 的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23603388/