如何在Swift中存储变量 - 登录系统?

时间:2015-03-14 17:36:48

标签: ios swift session

好的,我正在一个需要登录系统的iOS swift应用程序中工作。 一切正常,但我不确定它是否安全存储用户ID,应用程序将在登录后从服务器接收,用:

NSUserDefaults.standardUserDefaults().setObject(userid, forKey: "userid")

并使用此命令在每个视图控制器上获取此变量:

var userid: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("userid")

有办法开始会话吗?喜欢在php?

谢谢!

1 个答案:

答案 0 :(得分:4)

NSUserDefaults中的值以二进制格式存储在应用程序目录中,没有加密。所以它们很容易被篡改,因此不安全。

除非您创建会话,否则在iOS中没有会话的直接对应方。这意味着您可以在加密后将敏感信息存储在用户默认值中,或者您可以使用iOS Keychain直接存储它们(这将为您执行加密)。在iOS上使用Keychain有点复杂,但你可以找到它的包装。

请参阅此主题以获取示例:iOS: How to store username/password within an app?

还有关于raywenderlich的教程:  http://www.raywenderlich.com/92667/securing-ios-data-keychain-touch-id-1password