我正在使用 Facebook SDK 登录并通过我的应用程序进行操作。当用户从他们的 Facebook 页面删除应用程序权限然后重新打开应用程序时,我希望它转到第一个 View Controller ,它要求用户登录 Facebook。但是,我遇到了即使在删除权限后用户仍然能够访问该应用程序的问题。
那么,它应该如何工作:
i) 用户转到 Facebook 个人资料并从设置中删除应用权限
ii) 用户从 iPhone 上完全关闭了我的应用。
iii) 用户重新打开我的应用程序,应该会出现“登录 Facebook” View Controller 。
相反,会发生什么:
i) 用户转到 Facebook 个人资料并从设置中删除应用权限
ii) 用户从 iPhone 上完全关闭了我的应用。
iii) 用户重新打开我的应用程序,我的应用程序在另一个 View Controller 中打开,该 View Controller 只应在用户登录后出现。
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
GMSServices.provideAPIKey("MY_API_KEY")
GMSPlacesClient.provideAPIKey("MY_API_KEY")
// FACEBOOK API STUFF
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
print(FBSDKAccessToken.current())
let storyboard = UIStoryboard(name: "Main", bundle: nil)
self.window = UIWindow(frame: UIScreen.main.bounds)
if(FBSDKAccessToken.current() != nil){
print(FBSDKAccessToken.current())
let initialViewController = storyboard.instantiateViewController(withIdentifier: "main")
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
}
else{
print(FBSDKAccessToken.current())
let initialViewController = storyboard.instantiateViewController(withIdentifier: "facebookLogin")
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
}
return true
}
最佳答案
您需要手动注销您的 session
FBSDKLoginManager().logOut()
或
FBSDKAccessToken.current = nil
FBSDKProfile.current = nil
关于ios - Swift:即使从 Facebook 设置中删除应用程序后,Facebook 访问 token 也始终返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44320123/