【问题标题】:Parse.com - Update email for PFUser while using Fb authenticationParse.com - 在使用 Fb 身份验证时更新 PFUser 的电子邮件
【发布时间】:2014-06-29 11:34:47
【问题描述】:

我在通过 Facebook 登录或注册时正确接收 PFUser。我的权限数组:

NSArray *permissionsArray = @[ @"user_about_me",@"email"];

在 Parse Data 浏览器中,我可以看到一个用户是用一些长字符串用户名和正确的 authData 等创建的。但是电子邮件字段仍然是空的。

我是否需要单独调用来填写新创建的 PFUser 的电子邮件字段?如果是,那么正确的步骤是什么。

另一个问题,忘记密码机制如何在 Parse.com 中为 facebook 认证用户工作?我是否需要先调用graph api填写电子邮件值,然后使用该电子邮件地址进行忘记密码功能?

【问题讨论】:

    标签: ios objective-c facebook-graph-api permissions parse-platform


    【解决方案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: 使用属性 username 来登录用户,而不是电子邮件,并且该值对于您应用中的 Facebook 用户可能是未知的。

    【讨论】:

    • 感谢您的意见。是的,这真的很有意义。事实上,在 requestPassword api 调用中,我们可以说用户未使用此电子邮件地址注册,因为用户已使用 facebook 而不是常规注册身份验证过程登录。
    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 2018-02-10
    • 2023-03-18
    • 2012-08-10
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多