存储用户令牌的Nativescript

Atu*_*ary 5 nativescript

这是一个好习惯还是我错过了什么?我不想在应用程序设置中存储从Web API返回的用户访问权限和刷新令牌,或者我们在nativescript中是否有等效的密码库,或者我们是否使用sql lite我的要求是我的令牌不应被其他应用程序访问安装在设备上.感谢提前问候的帮助

Emi*_*erg 19

如果您只想存储一个简单的字符串,只能由应用程序本身(而不是其他应用程序)访问,那么使用" 应用程序设置"即可.

var appSettings = require('application-settings');

// Trying to get a string which is not set yet
var token = appSettings.getString('token', 'defaultValue');
console.log(token); // defaultValue

// Setting the string
appSettings.setString('token', 'abc123');

// Getting the string
token = appSettings.getString('token', 'defaultValue');
console.log(token); // abc123
Run Code Online (Sandbox Code Playgroud)

没有金库(但是?).

如果你想存储一些类似数据库的数据,那么有一个sqlite模块可用,但是,为了只存储一两个简单的字符串,这将是一种过度的方法,我会采用上面描述的应用程序设置方式.

https://www.npmjs.com/package/nativescript-sqlite

  • 应用程序设置使用 Android 中的共享首选项,这是不安全的并且可以被其他应用程序访问。如果手机具有 root 访问权限,它甚至可以通过简单的文本编辑器以纯文本形式查看。不要使用应用程序设置来保存用户令牌 (3认同)
  • 是的。一直存储到用户从设备中删除应用程序。 (2认同)
  • @Andrej,您可以使用 `nativescript-secure-storage` https://github.com/EddyVerbruggen/nativescript-secure-storage 或使用加密数据库。这些比纯文本应用程序设置要好得多 (2认同)