【发布时间】:2021-03-09 01:57:31
【问题描述】:
所以我构建了一个我想要的应用程序,包括与 OpenID Connect(OIDC“oidc-client”)的集成。
问题是它只适用于 DEV 环境,因为电子为它旋转本地服务器,所以当我在 DEV 模式下识别我的应用程序后被重定向时,侦听“localhost:3000”并且 oidc-client 可以继续保存令牌和其他的东西。
但是,一旦我构建了一个生产版本,electron 作为一个静态文件提供响应,所以现在所有的 URL 都是“file://....”,并且一旦我在这次识别后被重定向,没有人是否可以在“localhost:3000”处收听 OIDC 回调。我钻研了 electron 和 OIDC 的文档,但没有找到一个关于如何实现这个案例的示例。
有人在 Electron 的生产版本中成功“收听”了回调吗?我想到的唯一选择是在 prod 上启动服务器并收听“localhost:3000”,但问题是在哪里重定向它,所以 OIDC 会抓住它吗?如有任何意见,我将不胜感激,在此先感谢您。
这里是我描述的一些视觉解释。
【问题讨论】:
-
您找到解决方案了吗? Okta 提供this tutorial 并包含一个用于生产构建的步骤,但由于您描述的问题,没有讨论它在产品构建中真正工作的必要步骤。
-
@dev 控制进程的唯一方法是使用电子应用程序的自定义登录页面,它与应用程序具有相同的来源,没有任何重定向,这与身份提供的登录页面不同服务器,需要重定向。这样我只需 http.post(...) 所有必要的数据并获取令牌作为响应。
标签: node.js electron openid-connect