我正在尝试使用keytar.js保存密码,由于某些原因,当我从keytar使用ANY函数时,我一直收到此错误。
有关信息:lib。已安装,并且功能存在且存在(我使用console.log进行了检查),并且它们与catch()正常工作。
以下是一些代码:
const keytar = require("keytar");
我正在React的componentDidMount()函数中使用它,
我尝试了这两个版本,但似乎都没有用:
keytar
.setPassword("stoma", "user", user)
.then(() => {
console.log("User .. OK !");
})
.catch(() => {
console.log("User .. ERROR !");
ok = false;
})
和
keytar.setPassword("stoma", "statut", "true");
这里也有一些错误日志:
keytar.js:38 Uncaught (in promise) TypeError: keytar.setPassword is not a function
at keytar.js:38
at keytar.js:12
at new Promise (<anonymous>)
at callbackPromise (keytar.js:11)
at Object.setPassword (keytar.js:37)
at _callee$ (Login.js:52)
at tryCatch (runtime.js:62)
at Generator.invoke [as _invoke] (runtime.js:288)
at Generator.prototype.(:3000/anonymous function) [as next] (http://localhost:3000/static/js/0.chunk.js:1881:21)
at asyncGeneratorStep (asyncToGenerator.js:3)
at _next (asyncToGenerator.js:25)
at asyncToGenerator.js:32
at new Promise (<anonymous>)
at asyncToGenerator.js:21
at _validate (Login.js:48)
at validate (Login.js:48)
如果能为您提供帮助,我将不胜感激。
答案 0 :(得分:0)
使用 Electron 时,必须通过主进程使用 keytar。从渲染过程调用 keytar 将不起作用。
如 this question 中所述,您必须执行以下操作:
在 ^
文件中,您必须使用所需的 keytar 逻辑定义要调用的侦听器。在这种情况下,获取和设置密码
(?=.*\p{Alnum})
然后从renderer进程,就可以调用
[^*@:;\n]+
或
(?<!\.)