通过 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 登录令牌,在“您已经授权 APPName”Facebook 中单击“确定”按钮后