我正在做一个小项目来准备服务器链接,但我正在尝试将 token 保存在 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]
}
}
这个code可以通过header放在下面的代码中得到,但是不知道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)
}
最佳答案
首先,您不应将敏感信息存储到用户默认值中。我建议你使用钥匙串(keychain)。它非常安全。
有几个库提供了简单易用的钥匙串(keychain)接口(interface)
SwiftyKeychainWrapper
就是其中之一:
https://github.com/jrendel/SwiftKeychainWrapper
更新-
您需要使用以下代码访问用户默认值:
let token = UserDefaults.standard.string(forKey: “keyName”) ?? “”
注意:如果 token 不存在,那么您可以将用户导航到登录屏幕以进行身份验证和重新生成 token 。
关于ios - 如何在 iOS 中存储 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62816406/