iOS Swift在哪里存储用户登录数据或OAuth令牌?

事情并不像在用户手机上存储登录数据的最佳做法那样清晰.有人建议将userID = 123和loggedIn = true类型数据等数据存储在NSUSerDefaults数据中.然而根据我的理解,根据这篇文章 https://www.andyibanez.com/nsuserdefaults-not-for-sensitive-data/,这些数据可以很容易地被操作

所以问题是:当用户浏览各种屏幕时,持久登录数据的最佳方法是什么.需要存储的唯一数据是userID或OAuth令牌以及有关此用户帐户状态的一些其他自定义位.存储此数据的最安全方法是什么,以确保在从服务器中提取数据时,某人不能简单地伪造成另一个用户

问候,
迈克尔

解决方法

NSUserDefaults API是存储REST令牌和任何类型的秘密数据的不好的地方.
因为它不是一种安全的方法,所以没有加密.此外,它可以通过逆向工程师轻松打开和读取.

我建议你把它存放在一个钥匙串中.钥匙串是更好的解决方案,因为它更安全并且具有加密功能.有关钥匙串支持存储的实现的更多详细信息,请查看iOS Keychain Services Task参考.

另请注意,这是一项非常耗时的任务,您可能对第三方库,钥匙串包装器感兴趣.我建议您以SSKeychain库或GenericKeychain Apple示例项目为起点.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...