实际上是有区别的撤销登录(让人们完全取消对应用程序的授权,或撤销登录)以及注销来自他/她的 Facebook 帐户的用户:
撤销登录
(您可以检查Facebook 文档 https://developers.facebook.com/docs/facebook-login/permissions/v2.4)
您还可以通过调用此 Graph API 端点来让人们完全取消对应用程序的授权或撤销登录:
DELETE /{user-id}/permissions
此请求必须使用有效的用户访问令牌或当前应用程序的应用程序访问令牌发出。如果请求成功,您的应用程序会收到 true 响应。如果调用成功,该人的任何用户访问令牌都将失效,并且他们必须重新登录。由于您要取消对应用程序的授权,因此他们还必须授予对您的应用程序的访问权限,就像第一次登录一样。
let facebookRequest: FBSDKGraphRequest! = FBSDKGraphRequest(graphPath: "/me/permissions", parameters: nil, HTTPMethod: "DELETE")
facebookRequest.startWithCompletionHandler { (connection: FBSDKGraphRequestConnection!, result: AnyObject!, error: NSError!) -> Void in
if(error == nil && result != nil){
println("Permission successfully revoked. This app will no longer post to Facebook on your behalf.")
println("result = \(result)")
} else {
if let error: NSError = error {
if let errorString = error.userInfo?["error"] as? String {
println("errorString variable equals: \(errorString)")
}
} else {
println("No value for error key")
}
}
}
从用户的 Facebook 帐户中注销用户
如果您使用过Parse和Facebook iOS SDK 版本 >= 4.4.0通过以下方式注册或登录用户Facebook,并且您不想取消应用程序授权或撤销登录,而只想从 Facebook 注销用户,那么请改用:
PFUser.logOut()
它将注销用户,删除会话Parse后端(不要忘记enable http://blog.parse.com/announcements/announcing-new-enhanced-sessions/ Parse 可撤销的会话 https://parse.com/docs/ios/guide#sessions-handling-invalid-session-token-error通过您的 Parse 应用程序设置),此外它还会删除Facebook写入用户设备磁盘上的会话。
我希望这个答案对你们有所帮助。