多用户 iOS SDK
Posted
技术标签:
【中文标题】多用户 iOS SDK【英文标题】:Multiple Users iOS SDK 【发布时间】:2016-07-20 18:45:41 【问题描述】:我正在开发一个可供多个用户使用的 ios 应用。例如,它将安装在信息亭中,因此多人将与之交互,然后能够登录 Facebook 并分享内容。
我可以在应用程序中使用 Facebook 凭据登录/注销;但是,当我下次登录时……嵌入式弹出式 safari 浏览器会记住以前登录的用户并说“您已经授权”。清除用户的正确方法是什么,以便 safari 浏览器不记得最后一个用户?我到处搜索,人们建议使用 var httpCookie:NSHTTPCookieStorage=NSHTTPCookieStorage.sharedHTTPCookieStorage()... 清除 cookie,但这会返回 0 个项目。任何帮助或指导将不胜感激!
【问题讨论】:
您如何要求用户登录?应用程序会打开 Safari 登录吗?还是在应用内处理登录? 使用新的 Facebook iOS SDK,它默认为 Safari 视图控制器。因此,当您单击登录按钮时……它是 Safari 的精简版,但共享所有 cookie……因此,如果用户已经登录,则会立即提示您授予对应用程序的访问权限。如果没有,则您登录,然后系统会提示您授予对应用程序的访问权限。所以,它真正打开了 Safari,它会记住你的登录凭据,我不知道如何从我的应用程序中清除它。 【参考方案1】:这应该可以解决问题:
let storage = NSHTTPCookieStorage.sharedHTTPCookieStorage()
for cookie in storage.cookies!
storage.deleteCookie(cookie)
【讨论】:
这将返回 0 个项目...func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) print("User Logged Out") FBSDKAccessToken.setCurrentAccessToken(nil) FBSDKProfile.setCurrentProfile(nil) FBSDKLoginManager().logOut() let storage = NSHTTPCookieStorage.sharedHTTPCookieStorage() for cookie in storage.cookies! storage.deleteCookie(cookie)
您可以在重置后尝试打印这些值吗?所以在 FBSDKAccessToken.setCurrentAccessToken(nil) 之后打印 currentAccessToken 看它是否真的是 nil。
好的...现在是注销功能...if(FBSDKAccessToken.currentAccessToken() == nil) print("Access Token is NIL") else print("Access Token is NOT NIL")
控制台输出...访问令牌为NIL以上是关于多用户 iOS SDK的主要内容,如果未能解决你的问题,请参考以下文章