【发布时间】:2016-03-11 03:45:50
【问题描述】:
我正在尝试使用我的 Swift 应用程序实现 Facebook 登录。我能够很好地登录应用程序。但是,一旦我注销用户,我就遇到了一个问题。我收到错误the supplied Facebook session token is expired or invalid。如何生成新令牌?代码如下:
if let accessToken: FBSDKAccessToken = FBSDKAccessToken.currentAccessToken() {
PFFacebookUtils.logInInBackgroundWithAccessToken(accessToken, block: {
(user: PFUser?, error: NSError?) -> Void in
if user != nil {
print("User logged in through Facebook!")
self.navigateToInGame(true)
} else {
print("Uh oh. There was an error logging in.")
let manager = FBSDKLoginManager()
manager.logOut()
manager.logInWithReadPermissions(["public_profile", "email"], fromViewController: self, handler: { (result, error) -> Void in
if let error = error {
print(error.localizedDescription)
}
if result.isCancelled {
print("Cancelled")
} else {
print("Logged in")
if let user = user {
if user.isNew {
print("User signed up and logged in through Facebook!")
self.performSegueWithIdentifier("signUp", sender: self)
} else {
print("User logged in through Facebook!")
self.navigateToInGame(true)
}
} else {
print("Uh oh. The user cancelled the Facebook login.")
}
}
})
if accessToken.expirationDate.compare(NSDate()) == NSComparisonResult.OrderedAscending {
FBSDKLoginManager.renewSystemCredentials({ (result, error) -> Void in
if result != .Renewed {
// Do further procedures once renewed is failed or rejected
print("Token didn't renew")
}
})
}
}
})
} else {
let permissions = ["public_profile", "email"]
PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions, block: {
(user: PFUser?, error: NSError?) -> Void in
if let user = user {
if user.isNew {
print("User signed up and logged in through Facebook!")
self.performSegueWithIdentifier("signUp", sender: self)
} else {
print("User logged in through Facebook!")
self.navigateToInGame(true)
}
} else {
print("Uh oh. The user cancelled the Facebook login.")
}
})
}
}
更新的代码。
我在日志中得到以下信息:
“哦哦,登录错误”。仍然允许我通过 FB 登录。我在 Facebook 中点击“继续”。
日志显示“已登录”
日志显示“哦,哦,用户取消了 Facebook 登录,它把我踢回登录屏幕。但是,用户仍然是在 Parse 中创建的。我想在第一次登录后转到我的 signUp segue时间。
【问题讨论】:
标签: ios swift facebook facebook-graph-api parse-platform