当用户登录到服务时,我应该在哪个位置存储令牌?我不会保存密码(显然我会在哪里使用 keys 链),而只是保存令牌.很多地方都说只使用NSUserDefaults,但StackOverflow上的一些人似乎非常热衷于 keys 链.

NSUserDefaults是否正常?

推荐答案

我强烈建议你使用 keys 链——这正是Facebook用来存储会话令牌的功能.

NSUserDefaults既不安全也不加密-无论是在设备上还是在与Mac同步时,都可以很容易地打开和读取它.因此,虽然用户默认设置是存放首选项和配置信息等内容的好地方,但不是存放密码等敏感内容的好地方.

会话令牌应该几乎总是与密码一样对待,所以您应该将它们安全地存储在密钥链中,在那里它们将被加密.Apple有一些显示基本实现的示例代码(GenericKeychain),您可以通过搜索StackOverflow找到其他示例.希望这对你有帮助.

Ios相关问答推荐

在SWIFT中将圆角+透明背景从导入视频(.mp4)添加到导出视频(.mov)

在Android和iOS上从后台恢复应用程序后,inappwebview上出现白屏?

SWIFT AVFoundation不能在查看更新的同时发布更新

在嵌套的DISPATCH_AFTER块中正确使用strong自/弱自

如何使用Swift以编程方式更改SVG文件中某些元素的 colored颜色

如何在集合视图中创建装饰视图?

Swift中是否有一种方法可以为可选属性创建一个计算(computed)属性

Swift Vision库识别文本后如何将其赋值给 struct 体实例属性以供显示?

Apollo iOS 客户端代码生成:错误:无法查询字段

叠加视图不在堆栈中维护自身 - SwiftUI

Swift 5.7 - 使存在的任何协议符合 Hashable

无法为 Flutter 项目构建 ipa [CocoaPods 找不到 pod "GoogleAppMeasurement" 的兼容版本:]

Swift 共享数据模型在页面之间进行通信.这个怎么运作

如何在保持纵横比的同时zoom UIView 的内容以适应目标矩形?

在设备上卸载 ios 应用程序后如何在 ios 中保留 identifierForVendor?

如何更新推送通知服务证书

如何使用 Swift 从assets资源 中加载特定图像

闭包不能隐式捕获变异的 self 参数

为给定的 UIColor 获取更亮和更暗的 colored颜色 变化

xcode 5.1:libCordova.a 架构问题