使用iOS / Swift进行身份验证

时间:2016-05-17 11:41:54

标签: ios swift alamofire

我有一个非常简单的问题,我有一个node.js / express服务器,它将处理后端身份验证部分,它使用令牌而不是cookie,服务器部分工作正常,每当有人注册/登录它将返回一个JSON网络令牌。

例如:

{
    "token" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdW"
}

我正在使用Alamofire来处理来自iOS本身的HTTP请求。真正的问题在于如何在iOS / Swift中保留令牌?

最简单的方法是什么?

3 个答案:

答案 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有时可能有点令人生畏。

相关问题