gpt4 book ai didi

操作系统。授权后用户数据存放在哪里?

转载 作者:行者123 更新时间:2023-11-28 12:37:06 34 4
gpt4 key购买 nike

我有 REST APIManager 类 - 用于使用服务器 api 的单例。有返回用户Token实体的登录方法;

所有其他 API 方法都使用 token 来发出请求。登录后我应该在哪里存储该 token 实体?以及如何在其他 API 方法中使用该 token ?

当然,我可以将 token 存储在 NSUserDefaults 中,并在 APIManager 中实现方法,如下所示:

func createNews(news:NewsEntity, token:TokenEntity){
...
}

但我认为从方法中的 TokenEntity 参数中抽象出来是个好主意。如何做到这一点?

最佳答案

不建议在 NSUserDefaults 中存储敏感信息。你应该使用 Keychain services ,而是:

By making a single call to this API, an app can store small bits of secret information on a keychain, from which the app can later retrieve the information—also with a single call. The keychain secures data by encrypting it before storing it in the file system, relieving you of the need to implement complicated encryption algorithms.

现在,iOS Keychain 提供了一个非常低级的 API,因此通常最好使用更高级别的包装器,例如 Locksmith 提供的那些。 , 或 keychain-swift .

例如,使用后者,存储到钥匙串(keychain)和从钥匙串(keychain)读取就像做一样简单(在所需的设置之后):

如果您愿意,可以直接使用上述链接中 Apple 提供的示例。

let keychain = KeychainSwift()
keychain.set("hello world", forKey: "my key")
keychain.get("my key")

编辑:

至于代码结构,您可以创建一个类来封装每个请求所需的 token 和任何其他信息。这个类将有一个 init 方法获取 token ;和一个名为 createNews 的方法,具有以下简化签名:

func createNews(news:NewsEntity) {
...

根据您的风格偏好,这可能是单例从钥匙串(keychain)(或 NSUserDefaults,尽管不建议这样做)读取您的 token 。

关于操作系统。授权后用户数据存放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40553227/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com