ios - 登录后保存 userDefault token

标签 ios iphone swift authentication

我是软件新手,我有一个问题。

我有一个名为 LoginVC 的 LoginPage(截图如下)。当用户第一次打开应用程序时,如果成员(member)使用他的用户名和密码或通过 Facebook 帐户登录,下次他打开应用程序时,他将通过登录屏幕和直接显示“NewsVC”。如果他注销,他将再次看到登录页面。

根据我的调查,我必须使用 UserDefault 方法并创建一个本地数据库(例如 SQLite)。可能它会为输入的用户创建一个访问 token 。但我不知道我会怎么做。也许这个网站上有关于这个问题的问题,但是因为我不知道详细的方式找不到主题。

您能否解释一下这个主题并分享一个简单的 Swift 3 代码示例。

提前致谢 LoginVC ScreenShot

最佳答案

安全方面,将登录 token 存储在 UserDefaults 中被认为是一种不好的做法,我建议改用 Keychain API。 “黑客”可以相对轻松地从 UserDefaults 读取数据并使用您的访问 token 。

Keychain API 有点难用,我建议尝试第三方库,这里有一个例子: https://github.com/jrendel/SwiftKeychainWrapper

有关在 iOS 上保护数据的更多信息: https://github.com/felixgr/secure-ios-app-dev

如果您只是学习 - 使用 UserDefaults 没问题,但是一旦您考虑将您的应用程序移至生产环境 - 将其重构为 Keychain。

关于ios - 登录后保存 userDefault token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45389804/

相关文章:

iphone - 如何以编程方式增加 UITableView 中单元格的高度?

iphone - 更改 iphone sdk 中文本字段的占位符字体

ios - 如何在swift中重载赋值运算符

ios - 由于仅变换层而在 UIView 中发出警告

ios - 在 iOS 中让 UIImageView 的一部分无形化

ios - UICollectionView 自定义单元格未显示

ios - Xcode 4.6.x 和 Xcode 5 可以共享项目目录吗?

ios模拟器访问本地主机服务器

iphone - 全局声明使用 viewWithTag : and declaring in viewDidLoad:

ios - UIlabel 动态宽度和限制在一个单元格内