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

Posted

技术标签:

【中文标题】通过 Facebook SDK 询问“您已经授权”是不是正常【英文标题】:Is it normal to ask "you have already authorize " through Facebook SDK通过 Facebook SDK 询问“您已经授权”是否正常 【发布时间】:2015-11-18 11:54:06 【问题描述】:

这只是一个问题,如果我使用最新的 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
    


【问题讨论】:

是的,请发布代码和解释。 @moffeltje.. 我添加了代码。请检查!!! @moffeltje 你找到解决方案了吗? 这可能会有所帮助:***.com/a/42375054/3400991 【参考方案1】:

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

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

有一个 Graph API 调用来撤销权限,如果那是您正在寻找的。​​p>

如果您的问题是这是否“正常”。是的,我会说这很正常。这是一个视觉指示,表明您此时再次与之前授权的 FB 应用程序连接。通过不发送任何权限来避免它可能会起作用,但您通常不知道已经授权的用户是否正在再次登录,或者是一个全新的用户。如果后者在没有权限的情况下登录,那么您的应用也无法正常运行。

【讨论】:

以上是关于通过 Facebook SDK 询问“您已经授权”是不是正常的主要内容,如果未能解决你的问题,请参考以下文章

Swift:登录时是不是可以避免 Facebook SDK 4.x “您已经授权此应用程序”对话框?

如果应用程序已经授权 facebook sdk android 应用程序,则不显示权限窗口

重新询问 Facebook 中被拒绝的权限不起作用

如何获取 Facebook 登录令牌,在“您已经授权 APPName”Facebook 中单击“确定”按钮后

Facebook iOS 在单击“确定”后返回应用程序时似乎丢失会话您已经授权应用程序

多用户 iOS SDK