gpt4 book ai didi

node.js - 使用 Keycloak 保护 Electron 应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 00:06:58 35 4
gpt4 key购买 nike

我是 Keycloak 新手,很难验证在 Electron 上编写的桌面应用程序。我查看了讨论 OpenID Connect endpoint 的文档然后找到一个博客,里面写着Keycloak and Postman我可以通过这种方法从 Keycloak 获取 token 。

由于一些原因,我很确定这是不正确的。

如何在不运行客户端 Web 服务器来处理重定向的情况下验证我的 Electron 应用程序?有一个example for authenticating a web app ,但是有人有一个简单的例子来说明如何针对 Keycloak 验证 Electron 应用程序吗?

最佳答案

要在构建 Electron 中使用 Keycloak,您必须在 main.js 中添加服务器监听器:

const Keycloak = http.createServer((request, response) => {
response.writeHeader(200, {"Content-Type": "text/html"});
var readSream = fs.createReadStream(__static + '/index.html','utf8')
readSream.pipe(response);
});
Keycloak.listen(3000);

接下来将文件index.html添加到文件夹__static。在此文件中添加 JS 脚本,如 instruction 。并且您必须添加 ipcRenderer 并将 token 发送到 main.js:

   keycloak.init({ onLoad: 'login-required', redirectUri: 'http://localhost:3000' }).success(function(authenticated) {
if (authenticated) {
ipcRenderer.send('keycloak-token', keycloak.token);
}
}).error(function() {
console.log('error');
});

记得在 redirectUri 的 Keycloak 设置中添加 http://localhost:3000

接下来在 main.js 中,您可以发送 token 来检查授权:

  ipcMain.on('keycloak-token', (event, token) => {
const winURL = process.env.NODE_ENV === 'development'
? `http://localhost:9080?token=${token}`
: `file://${__dirname}/index.html?token=${token}`

mainWindow.loadURL(winURL);
});

关于node.js - 使用 Keycloak 保护 Electron 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51830192/

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