我正在尝试用SecureStorage替换ionic 2 Storage插件。但是,在文档中,据说“用户必须拥有安全的屏幕锁定设置”。所以我有点困惑。还有人说,如果安全设置不足,那么应用程序开发人员应该告知用户她的应用程序的安全要求,并在用户更改了屏幕锁定设置后再次初始化。我想我现在不需要安全存储。因此,移动存储'是一个好主意。到#SecureStorage'。如果没有那么可能是另一种选择。
答案 0 :(得分:9)
移动'存储'这是一个好主意。到' SecureStorage'
不,"安全存储" (由cordova-plugin-secure-storage提供)旨在存储少量敏感数据,例如用户凭据或信用卡详细信息。它不是一般存储机制的替代品,例如SQLite数据库(例如cordova-sqlite-storage)。它没有提供无限量的存储容量,例如在Android上,尝试存储超过大约1.5Mb将导致内存异常。例如,如果需要存储大量敏感数据,可以加密存储在较大的SQLite数据库中的数据,并使用安全存储来安全地存储解密密钥。
在文档中据说'用户必须拥有安全的屏幕锁定设置'
这意味着在Android上,设备必须具有安全的锁定屏幕 - 即必须输入的图案或密码锁才能解锁设备(注意:幻灯片解锁不被认为是安全的)。如果不是这种情况,则安全存储插件构造函数将调用错误回调,并且您无法使用安全存储在该设备上存储数据。
还有人说,如果安全设置不够,那么应用程序开发人员应该告知用户她的应用程序的安全要求,并在用户更改了屏幕锁定设置后再次初始化。
如果在初始化插件时调用错误回调,您有机会通知用户,即"您的设备没有安全的屏幕锁定。没有一个,你就无法{使用此功能}。你想现在订一个吗?"
您可以使用您喜欢的任何机制向用户展示消息,例如the confirm() function from cordova-plugin-dialogs
如果用户同意,您可以从安全存储插件调用onResume()
函数,该插件调用本机活动以引导用户完成设置屏幕锁定的过程。在此过程中,您的应用程序将被置于后台,因此当它恢复时,您可以使用{{1}}处理程序来检查安全存储插件是否已经初始化,如果没有重试初始化它:如果用户设置了屏幕锁定,该插件将成功初始化。如果没有,将再次调用错误回调(返回到方块1)。
另请注意,安全存储插件需要Android 4.4或更高版本:在Android 4.3或更低版本下,无论锁定屏幕设置如何,插件始终无法初始化。