npm i --save @heywhy/ns-secure-storage
- 版本:0.3.0
- GitHub: https://github.com/heywhy/nativescript-plugins
- NPM: https://npmjs.net.cn/package/%40heywhy%2Fns-secure-storage
- 下载
- 昨天:0
- 上周:0
- 上个月:0
@heywhy/ns-secure-storage
安装
从命令提示符进入您的应用程序根目录并执行
ns plugin add @heywhy/ns-secure-storage
使用方法
此插件与 @nativescript/secure-storage 具有相同的 API,但进行了改进。
iOS 安全性增强+
默认情况下,插件使用 kSecAttrAccessibleAlwaysThisDeviceOnly
访问控制到密钥链。这意味着即使在设备锁定的情况下也可以访问密钥链值。如果您想增强安全性并且不需要后台访问,或者如果您想允许值被备份并迁移到另一台设备,您可以在创建 SecureStorage
实例时使用以下任何密钥并传递它,例如
declare const kSecAttrAccessibleWhenUnlockedThisDeviceOnly; // This is needed in case you don't have tns-platform-declarations module installed.
const secureStorage = new SecureStorage({accessibilityType: kSecAttrAccessibleWhenUnlockedThisDeviceOnly})
iOS 模拟器
目前此插件默认在 iOS 模拟器 上使用 NSUserDefaults
。您可以通过向 SecureStorage
构造函数提供 disableFallbackToUserDefaults
来更改此行为。这样,在模拟器上就使用密钥链而不是 NSUserDefaults
。
const secureStorage = new SecureStorage({disableFallbackToUserDefaults: true})
如果您遇到类似 issue_10 的问题,请考虑再次使用默认行为。
iOS 密钥链访问组
您可以通过密钥链访问组在应用程序/扩展之间共享秘密。
设置方法
-
通过在
app/App_Resources/iOS/<someName>.entitlements
文件中添加条目来将密钥链访问组权限添加到您的应用程序。例如:
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.my.app.sharedgroup</string>
</array> -
然后在您的应用程序中指定获取/设置值时的
accessGroup
属性。例如:import { SecureStorage } from "@heywhy/ns-secure-storage";
export class MyComponent {
secureStorage = new SecureStorage();
// a method that can be called from your view
setSecureValue() {
this.secureStorage.set({
accessGroup:"<TeamID>.com.my.app.sharedgroup",
key: 'myKey',
value: 'my value'
}).then(success => { console.log(success)});
}
}
许可证
Apache 许可证版本 2.0