验证有效的 Parse 和 Facebook 会话,同时还允许在没有 Facebook 的情况下注册
Posted
技术标签:
【中文标题】验证有效的 Parse 和 Facebook 会话,同时还允许在没有 Facebook 的情况下注册【英文标题】:Verifying valid Parse and Facebook session while also allowing sign up without Facebook 【发布时间】:2015-11-04 21:11:32 【问题描述】:如Parse's tutorial for integrating Facebook login 的绕过登录部分所述,您需要验证缓存用户是否存在以及该用户是否与 Facebook 链接,如果不存在则显示登录屏幕.这对允许在不使用 Facebook 的情况下创建帐户的应用程序提出了问题。因为该用户永远不会链接到 Facebook,所以它总是会显示登录屏幕。但是,如果您只检查用户是否被缓存,他们可能会从 Facebook 取消链接 - 本质上他们的会话是不活动的。我相信,当这种情况发生时,您将不会显示登录屏幕并且请求将失败。 (或者这是否仅限于应用程序向 Facebook 发出的请求 - 在这种情况下您还能向 Parse 用户发出请求吗?)
我的问题是,如何正确验证 Parse 用户是否有活动会话,如果他们的帐户与 Facebook 相关联,还确保该帐户仍然处于活动状态,否则显示登录屏幕?
//TODO: How to make it work without a Facebook account
if PFUser.currentUser() == nil || !PFFacebookUtils.isLinkedWithUser(PFUser.currentUser()!)
//show login screen
一种解决方案是在用户表中添加一列,指示该用户是否是通过 Facebook 登录创建的。如果已设置,则验证该帐户是否仍然链接,否则不要。我想知道是否有更好的方法来获得正确的行为。
【问题讨论】:
如果用户没有与 Facebook 链接,这并不意味着他们的会话一定是无效的。 【参考方案1】:我喜欢你的方法。我不知道您是否可以访问用户表中的 authData。如果你这样做了,那么你只需检查一下就可以逃脱。
【讨论】:
我最终将 Facebook id 存储在 User 表的列中。以上是关于验证有效的 Parse 和 Facebook 会话,同时还允许在没有 Facebook 的情况下注册的主要内容,如果未能解决你的问题,请参考以下文章
Parse 数据浏览器设置中的 Facebook 和 Twitter 身份验证
XCode - Swift - 使用 Parse 进行 Facebook 身份验证
Facebook(4.6)/Parse(1.9.1) 登录无效