gpt4 book ai didi

javascript - 未处理的拒绝 (TypeError) : keytar. setPassword 不是函数

转载 作者:行者123 更新时间:2023-12-03 12:20:01 25 4
gpt4 key购买 nike

我正在尝试使用 keytar.js 保存密码,由于某种原因,我在使用 keytar 中的任何功能时不断收到此错误。

有关信息: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)

如果有人可以提供帮助,我将不胜感激。谢谢。

最佳答案

使用 Electron 时,必须通过主进程使用 keytar。从渲染过程中调用 keytar 将不起作用。
this question 中解决您必须执行以下操作:
main.js文件中,您必须使用所需的 keytar 逻辑定义要调用的监听器。在这种情况下,获取和设置密码

ipcMain.on('get-password', (event, user) => {
event.returnValue = keytar.getPassword('ServiceName', user);
});

ipcMain.on('set-password', (event, user, pass) => {
event.returnValue = keytar.replacePassword('ServiceName', user, pass);
});
然后从渲染器进程中,您可以调用
const password = ipcRenderer.sendSync('get-password', user);
或者
ipcRenderer.sendSync('set-password', user, pass);
ipcMain 文档: here . ipcRenderer 文档: here

关于javascript - 未处理的拒绝 (TypeError) : keytar. setPassword 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56565138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com