我在登录或通过Facebook注册时正确接收PFUser。我的权限数组:
NSArray *permissionsArray = @[ @"user_about_me",@"email"];
在Parse Data浏览器中,我可以看到用户创建了一些长字符串用户名和正确的authData等。但是电子邮件字段仍然是空的。
我是否需要单独调用以填充新创建的PFUser的电子邮件字段?如果是,那么正确的步骤是什么。
另一个问题,忘记密码机制如何在Parse.com中为facebook认证用户工作?我是否需要首先通过调用graph api填充电子邮件值,然后使用该电子邮件地址获取忘记密码功能?
答案 0 :(得分:1)
您需要单独调用以填充电子邮件属性。用户通过身份验证后,您可以调用 FBRequestConnection 类的startForMeWithCompletionHandler:
方法获取用户信息,然后将其保存到当前用户。你的电话应该是这样的:
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:
使用属性用户名来登录用户,而不是电子邮件,并且该应用中的Facebook用户可能不知道该值。