我有一个非常简单的问题,我有一个node.js / express服务器,它将处理后端身份验证部分,它使用令牌而不是cookie,服务器部分工作正常,每当有人注册/登录它将返回一个JSON网络令牌。
例如:
{
"token" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdW"
}
我正在使用Alamofire来处理来自iOS本身的HTTP请求。真正的问题在于如何在iOS / Swift中保留令牌?
最简单的方法是什么?
答案 0 :(得分:4)
您应该使用iOS Keychain来保存敏感信息。
您应不使用NSUserDefaults
来存储身份验证令牌或任何其他可能敏感的信息。它是未加密的,可以在root设备上轻松访问。
您希望有人获得您的身份验证令牌并随意向您的私有API发送请求(例如,在命令行中使用curl
)?
我已经使用了KeychainAccess CocoaPod,它的用法很简单:
static let keychain = Keychain(service: "com.example.myapp")
keychain["secret_code"] = secretCode // Save something
let secretCode = keychain["secret_code"] // Retrieve something
答案 1 :(得分:0)
最简单的方法是将它存储在NSUserDefaults
中,如下所示:
<强>书写:强>
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("Your Variable Value", forKey: "token")
<强>读:强>
let defaults = NSUserDefaults.standardUserDefaults()
if let token = defaults.stringForKey("token") {
print(name)
}
答案 2 :(得分:0)
最简单的方法可能是NSUserDefaults
,但最安全的方法是将令牌存储在iOS Keychain中。请注意,有几个包装库(for example)可用于在Swift中更轻松地使用钥匙串。 API有时可能有点令人生畏。