使用 Electron App 进行 Keycloak 身份验证

Posted

技术标签:

【中文标题】使用 Electron App 进行 Keycloak 身份验证【英文标题】:Keycloak authentication with Electron App 【发布时间】:2019-01-30 09:36:59 【问题描述】:

嗨,我已经坚持了好几天了!在使用 guide 转换我的反应应用程序后,我正在尝试使用 keycloak 来验证我的电子应用程序。

当我运行 'npm run electron:dev' 时,keycloak 会重定向到登录页面。但是,当我运行“npm run electron:prod”时,它会失败。

来自 keycloak 服务器的日志显示:

Server:server-one] 08:58:31,575 WARN  [org.keycloak.events] (default task-3) type=LOGIN_ERROR, realmId=codingpedia, clientId=my-ui, userId=null, ipAddress=127.0.0.1, error=invalid_redirect_uri, redirect_uri=file:///home/mycompany/john/projects/boilerplate-javascript-electron/app/build/index.html

请注意,redirect_uri 是 'file:///...',我认为这是它的原因。

我也尝试更改以下内容,但无法解决问题。

// import createHistory from 'history/createBrowserHistory';
import createHistory from 'history/createHashHistory';

为什么这在 dev 中有效,但在 prod 中无效?有什么我想念的吗?提前谢谢!

【问题讨论】:

下面的答案对您有帮助吗?谢谢! 以下答案没有解决问题。它在开发中工作,因为它使用 web pack 开发服务器,而在生产中它完全基于文件。 @johnwick0831,您找到解决问题了吗? 不,@michal 不幸的是,我们从未深究。 一年后运气好吗? 【参考方案1】:

它在开发中工作可能是因为“index.html”文件位于您的计算机中(file:///home/mycompany/john/projects/boilerplate-javascript-electron/app/build/index.html)。

This *** thread 告诉如何通过管理控制台正确设置 redirect_uri 参数。

注意:确保您可以使用浏览器或任何其他客户端工具 (HTTP GET) 远程访问 prod 中的 index.html。

【讨论】:

以上是关于使用 Electron App 进行 Keycloak 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Electron中常用api事件-app常用事件和webContents常用事件

如何从 Windows 上下文菜单启动 Electron-app

electron 大体结构

使用一个 NPM 命令启动 react-create-app 和 Electron.js

使用electron-builder时如何修改app.asar的文件夹结构?

Electron 的 app.getAppPath() 指向哪里?