FB登录后解析会话令牌无效
Posted
技术标签:
【中文标题】FB登录后解析会话令牌无效【英文标题】:Invalid parse session token after FB login 【发布时间】:2016-01-21 17:23:47 【问题描述】:我的解析应用程序出现问题。我有当前匿名用户的 Facebook 链接功能。
在 AppDelegate 文件中我有这个功能:
if (PFUser.currentUser() == nil)
PFAnonymousUtils.logInInBackground()
else if (PFUser.currentUser() != nil && PFFacebookUtils.isLinkedWithUser(PFUser.currentUser()!))
PFFacebookUtils.logInInBackgroundWithAccessToken(FBSDKAccessToken.currentAccessToken())
但是在当前用户的Facebook登录/链接之后,在接下来的几个应用程序启动中,收到错误209。
我在这里阅读了几乎所有被问到的问题,但没有什么能解决我的问题。
当用户点击 Facebook 登录按钮时:
if PFFacebookUtils.isLinkedWithUser(PFUser.currentUser()!)
PFFacebookUtils.linkUserInBackground(PFUser.currentUser()!, withReadPermissions: permissions, block: (success: Bool, error: NSError?) -> Void in
if success.boolValue
PFFacebookUtils.linkUserInBackground(PFUser.currentUser()!, withAccessToken: FBSDKAccessToken.currentAccessToken())
self.obtainFacebookProfile()
)
else
PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions, block: (user: PFUser?, error: NSError?) -> Void in
if error != nil
return
if user != nil
PFFacebookUtils.linkUserInBackground(user!, withAccessToken: FBSDKAccessToken.currentAccessToken())
self.obtainFacebookProfile()
)
我的 android 应用程序中也有相同的实现,没有这样的问题...
【问题讨论】:
【参考方案1】:我认为我通过在 AppDelegate 类中删除 Facebook 登录解决了这个问题。由于当前用户已与 Facebook 个人资料关联,因此无需在应用启动时再次执行此操作,因为它会生成新的会话令牌。问题是 Parse 可能无法在下一个数据请求发出之前更新数据库中的会话令牌。
【讨论】:
我遇到了同样的问题,很明显 parse 在令牌过期后不会更新 User 表中的令牌。你能解释一下你是如何解决这个问题的吗?我可以通过 FBSDK 获取新的 FB 令牌,但 Parse 仍然没有更新 User 表中的条目以上是关于FB登录后解析会话令牌无效的主要内容,如果未能解决你的问题,请参考以下文章