我正在做一个小项目来准备服务器链接,但是我试图将令牌保存在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)
}
答案 0 :(得分:1)
首先,您不应该将敏感信息存储到用户默认值中。我建议您使用钥匙串。这是高度安全的。
有几个库提供了简单易用的钥匙串界面
SwiftyKeychainWrapper
是其中之一:
https://github.com/jrendel/SwiftKeychainWrapper
更新-
您需要使用以下代码访问用户默认值:
let token = UserDefaults.standard.string(forKey: “keyName”) ?? “”
注意:如果令牌不存在,那么您可以将用户导航到“登录”屏幕以进行令牌的身份验证和重新生成。