iphone重启后iOS应用需要登录

Posted

技术标签:

【中文标题】iphone重启后iOS应用需要登录【英文标题】:iOS app needs logged in after iphone restart 【发布时间】:2013-03-08 14:43:45 【问题描述】:

可能这将是一个过于启动的问题。

我们开发了一个 iPhone 应用程序并将其上传到 Appstore。我们有自己的登录机制,facabook 登录和 twitter 登录。我们的用户报告了一个问题,即当应用程序启动并重新启动(关闭)iphone 设备时,应用程序也会被注销。用户需要重新登录。我们已经检查了 Facebook 应用程序。当设备重新启动(关闭)时,它会保持登录状态。我们也想这样做。你能建议这样做的机制吗?

【问题讨论】:

保存登录数据怎么样? 我们怎样才能做到这一点。将 NSUserDefault 存储到文件中? 是的,你可以,你可以为所欲为。但是,如果您有访问令牌或密码之类的东西,那么我建议您使用 KeyChain。 我想您可以保存访问令牌(如 rckones 建议的那样保存到钥匙串)并使用它登录(无需用户交互)。您可能想查看新的 (3.2) Facebook ios SDK:developers.facebook.com/ios/features/whats-new-ios-sdk-3.2 【参考方案1】:

将用户名和密码存储在钥匙串中。当应用启动时,从钥匙串中获取用户名和密码并执行登录方法。

约翰

【讨论】:

使用 Facebook 登录时(我相信 Twitter 也是如此),您无法访问用户名和密码。你可以保存访问令牌。 你说得对,我完全忘记了不再使用用户名/密码。但这种模式仍然有效。【参考方案2】:

您可以使用 NSUserDefaults、CoreData 或 FileSystem 存储您的 accessToken (facebook)。我不会建议您将登录名/密码保存在您的应用程序中。如果您需要这样做,最好保存数据用户(姓名,地址,手机......),而不是访问权限,如登录名/密码。它更安全。当然,您可以使用 KeyChain,但会在您想用该应用程序做什么时分别使用。

NSUserDefaults

Save string to the NSUserDefaults?

文件系统 - 苹果指南

http://developer.apple.com/library/mac/#documentation/FileManagement/Conceptual/FileSystemProgrammingGUide/FileSystemOverview/FileSystemOverview.html

核心数据

Save and Load Data - CoreData

【讨论】:

您遗漏了 KeyChain - 它最适合完成这项工作。 KeyChain的漏洞目的是存储账户相关的访问数据。

以上是关于iphone重启后iOS应用需要登录的主要内容,如果未能解决你的问题,请参考以下文章

应用程序重启后未调用iOS OneSignal handleNotificationReceived回调

iPhone / iOS Facebook SDK - 您可以在应用内登录并保留登录凭据吗?

使用 SDK 4.2 开发的 iPhone 应用程序需要向后兼容 iOS 3.1.3 .. 简单的方法?

Flutter iOS 应用需要 Google 登录密码

Flutter,为 IOS 构建:在 Iphone 上看不到登录页面

ios验证应用一闪是啥?