我正在开发一个使用React构建的Chrome扩展,该扩展处理加密钱包,我需要保存他们的钱包对象,这样他们就不必在每次关闭扩展并再次打开后解密它。所以我需要以某种方式安全地存储用户的密码或钱包的助记符。
Metamask使用持久的后台脚本来保持对象的活动,但这需要manifest版本2,新的扩展不再支持。
所以有任何方法来存储一个字符串安全地在一个Chrome扩展manifest版本3?Chrome存储和HTML5本地存储是不允许的。
使用chrome.storage.session
,它正是为了这个目的而创建的:将变量存储在内存中,而不持久化到磁盘。
API是一样的任何其他chrome。存储API,所以数据必须是json兼容的:字符串,数字,布尔值,null,这些类型的数组/对象。
当前存储的最大容量为1MB。
async function foo() {
// reading
const foo = await chrome.storage.session.get('foo');
// writing
await chrome.storage.session.set({foo: 'bar'});
}
manifest.json:
"permissions": ["storage"]