用户在使用 PFFacebookUtils 登录时取消选择 Facebook 权限
Posted
技术标签:
【中文标题】用户在使用 PFFacebookUtils 登录时取消选择 Facebook 权限【英文标题】:User de-selects Facebook permission while logging in with PFFacebookUtils 【发布时间】:2015-12-17 09:43:27 【问题描述】:我一直在搜索并尝试使用 PFFacebookUtils
和 Parse
解决此问题,其中用户通过 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 logIn 有时会创建新用户,有时会登录
从 PFFacebookUtils 中检索 Facebook 的用户 ID
在相同情况下,PFFacebookUtils 登录结果为无效范围