通过Facebook SDK询问“您已经授权”是否正常?

这只是一个问题,如果我使用最新的SDKloginFacebooklogin一次,然后再次尝试login,它会问我“你已经授权了应用程序名称”。 这是正常的,还是我必须改变一些东西,以避免它。

在我的情况下, 我做了Facebook应用程序设置SSO这不能解决问题!

每当我的login窗口显示,我注销Facebook和清除访问令牌,首先我想,因此,这是问,然而,我省略了代码,仍然是问! 我可以发布代码,如果有必要!

override func viewDidLoad() { super.viewDidLoad() fbloginButton.delegate = self fbloginButton.readPermissions = ["public_profile", "email", "user_friends"] if (FBSDKAccessToken.currentAccessToken() != nil) { var loginM:FBSDKLoginManager = FBSDKLoginManager() loginM.logOut() FBSDKAccessToken.setCurrentAccessToken(nil) } } @IBAction func loginFb(sender:AnyObject) { fbLoginManager.logInWithReadPermissions(["email"], fromViewController: self.presentingViewController, handler: { (result, error) -> Void in if (error == nil){ var fbloginresult : FBSDKLoginManagerLoginResult = result } }) } func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { NSLog("didCompleteWithResult") if ((error) != nil) { } else if result.isCancelled { } else { // If you ask for multiple permissions at once, you // should check if specific permissions missing if result.grantedPermissions.contains("email") { ///Here I call a function to get data } } 

我已经使用Facebook SDK已经有一段时间了,但是我想当你注销的时候,你只是使当前的访问令牌失效,结束你的会话,但是它并没有取消对你的应用的授权。

所以,当你login时,你只是为你已经授权的FB应用程序生成一个新的accessToken。 您需要再次login(以validation您的身份),但您不需要再次授权,因此它会给您提供该消息。

有一个graphicsAPI调用来撤销权限,如果这是你正在寻找。

如果你的问题是这是否是“正常的”。 是的,我会说这是正常的。 这是一个可视化的迹象表明,你在这一点上再次与以前授权的FB应用程序连接。 避免这种情况可能不会发送任何权限,但您通常不知道已授权的用户是否再次login,或者是否是全新的用户。 如果后者没有权限login,那么你的应用程序也不能按照假定的方式工作。