询问"你已经授权"是正常的吗?通过Facebook SDK

时间:2015-11-18 11:54:07

标签: ios iphone facebook swift

这只是一个问题,如果我使用最新的SDK登录Facebook登录,然后我再次尝试登录,它会问我"您已经授权了应用名称"。这是正常还是我必须改变一些东西以避免它。

在我的方案中,我在Facebook应用设置中启用了SSO ,这无法解决问题!!

每当我的登录窗口显示时,我都会退出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
    }

}

1 个答案:

答案 0 :(得分:1)

自从我使用Facebook SDK以来已经有一段时间了,但我认为当您退出时,您只是使当前的accessToken无效并结束您的会话,但它不会取消您的应用授权。< / p>

因此,当您登录时,您只需为已授权的FB应用程序生成新的accessToken。您需要再次登录(以验证您的身份),但您不需要再次授权,因此它会向您发送该消息。

如果您正在寻找权限,那么可以使用Graph API调用撤消权限。

如果你的问题是这是否正常&#34;。是的,我说这很正常。这是一个视觉指示,表示您此时再次与先前授权的FB应用程序连接。避免它可能会通过不发送任何权限来工作,但您通常不知道已经授权的用户是否再次登录,或者是否是全新的用户。如果后者在没有权限的情况下登录,那么,您的应用程序也不会像预期的那样工作。