如何在iOS中存储令牌?

时间:2020-07-09 13:49:33

标签: ios swift iphone

我正在做一个小项目来准备服务器链接,但是我试图将令牌保存在Userdefault中!我不知道如何编码。

var headers: [String: String]? {
    switch self {
    case .signIn:
        return nil
        
    case .renewalToken:
        guard let token = UserDefaults.standard.set("userID", forKey: "signIn") else{
        return ["Authorization": "Bearer " + token]
        }
    default:
        guard let token = UserDefaults.standard.set(<#T##value: Any?##Any?#>, forKey: <#T##String#>)
        return ["Authorization": "Bearer " + token]
    }
}

可以通过使用标头将其放在下面的代码中来获取此代码,但我不知道该如何处理令牌

   func get(_ api: TargetType) -> DataRequest{
    return AF.request(baseURI + api.path, method: .get, parameters: api.parameters, encoding: JSONEncoding.prettyPrinted, headers: api.headers, interceptor: nil)
}

1 个答案:

答案 0 :(得分:1)

首先,您不应该将敏感信息存储到用户默认值中。我建议您使用钥匙串。这是高度安全的。

有几个库提供了简单易用的钥匙串界面

SwiftyKeychainWrapper是其中之一:

https://github.com/jrendel/SwiftKeychainWrapper

更新-

您需要使用以下代码访问用户默认值:

let token = UserDefaults.standard.string(forKey: “keyName”) ?? “”

注意:如果令牌不存在,那么您可以将用户导航到“登录”屏幕以进行令牌的身份验证和重新生成。