用户在使用 PFFacebookUtils 登录时取消选择 Facebook 权限

Posted

技术标签:

【中文标题】用户在使用 PFFacebookUtils 登录时取消选择 Facebook 权限【英文标题】:User de-selects Facebook permission while logging in with PFFacebookUtils 【发布时间】:2015-12-17 09:43:27 【问题描述】:

我一直在搜索并尝试使用 PFFacebookUtilsParse 解决此问题,其中用户通过 Facebook 登录但未保存在 Parse Data Browser 中。在此过程中,用户取消选择权限(例如电子邮件),这会导致 Parse Data Browser 中出现空用户

我已更改此流程并添加了一些检查:

检查是否授予权限,如果没有则重新请求 允许。 每次创建新的 PFUser 时,如果权限是 没有给出,然后过程重新开始,我删除旧的 PFUser (因此创建了一个新的)。 检查所有权限并且数据准备就绪时 保存到 Parse 失败,并且用户对象显示为 Parse 中没有信息。

有人遇到过类似的情况吗?使用 Facebook 登录时在数据浏览器中清空 PFUser 数据?

使用PFFacebookUtils.logInWithPermissions

【问题讨论】:

【参考方案1】:

这可能会发生,但您可以通过在 Cloud 上检查用户来阻止在 Parse User 类中创建用户。在您的用户类beforesave 触发器中,您可以通过查看request.object.get("authData") 轻松检测正在注册的用户是否是Facebook 用户。然后您可以使用访问令牌 (request.object.get("authData").facebook.access_token) 调用图形 API 并检查您的用户是否已授予您所需的所有权限:

https://graph.facebook.com/me/permissions&access_token=xxx

如果不是,则通过返回 response.error() 来拒绝用户记录。

【讨论】:

以上是关于用户在使用 PFFacebookUtils 登录时取消选择 Facebook 权限的主要内容,如果未能解决你的问题,请参考以下文章

PFFacebookUtils。如何区分登录和注册?

PFFacebookUtils logIn 有时会创建新用户,有时会登录

从 PFFacebookUtils 中检索 Facebook 的用户 ID

在相同情况下,PFFacebookUtils 登录结果为无效范围

尝试使用 Parse PFFacebookUtils 登录 Facebook 时出现错误 307

使用 PFFacebookUtils 和 Swift 和 iOS 9 获取 Facebook 帐户详细信息