修改 查看我的answer了解解决方案
目前正在使用Ionic处理混合应用程序,其中需要存储身份验证令牌以保持用户登录,并且还保证在App上下文之外无法访问此数据。
当然,有很多解决方案可以完成这项任务,每个解决方案都有不同的优点和缺点,因此找到适合的技术会让我感到困惑。
我一直在关注angular-localForage和其他候选人:
iOS
中被删除。iOS
(IndexedDB support)Cordova
中的iOS
存在相关问题。JSON
文件中)?显然,Android / iOS交叉兼容性的最佳选择应该具有讽刺意味的是WebSQL,但不再开发,我必须保证长期支持。
所以我的问题是:我是否还有其他选项可以安全存储访问令牌?如果不是,那么上述哪一个应该是完成这项任务的最佳选择?
答案 0 :(得分:5)
在做了一些研究后,我将分享我的结论。
有趣的是,以上候选人都不适合安全存储访问令牌。该方法应该使用Android(共享首选项)和iOS( Keychain )的本机解决方案。
在Ionic的特定情况下,可以使用Cordova的broadcaster plugin与Native进行通信,以便您可以访问存储的数据。
答案 1 :(得分:0)
SQLite是最佳选择,因为DB的内容将被加密和保存。本机应用程序也依赖SQLite来保存数据。 为了使SQLite更容易使用CRUD,我创建了一个包装器库。请检查here
答案 2 :(得分:0)
唯一安全的方法是使用“httponly cookie”。但是,自 2020 年 4 月以来,Apple 使用 wkwebview 存在 cookie 问题。
答案 3 :(得分:-1)
转到LocalStorage,这是存储的最佳方式