多用户 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 个项目... 。在视图中创建 Facebook 登录按钮之前,我将这段代码放在 viewDidLoad 中。 您是否尝试使用:FBSDKLoginManager().logOut() 是的,我还尝试将访问令牌和当前配置文件设置为零。这是我单击注销时调用的注销方法...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的主要内容,如果未能解决你的问题,请参考以下文章

安卓/iOS手机端名片识别sdk

在 ios 中处理多设备/多用户登录的推送通知

在 ios sdk 中创建半圆形旋钮

Socket.io 私信,多用户同时在线

如何在 iOS 中建立多对多关系? (核心数据)

iOS多线程开发--NSThread NSOperation GCD