用于前端开发的可插拔 Keycloak-JS

Pluggable Keycloak-JS for Frontend Development

我们正在使用 Keycloakkeycloak-js 来保护我们的生产 Web 应用程序。所以它被深深地集成到我们的前端中。 要开始开发,我们总是需要启动一个 keycloak 容器。

有什么好的方法可以绕过 keycloak-js 并在开发过程中摆脱 keycloak 容器吗?
当前的方法是 NODE_ENV.
上的功能切换 你怎么看?

目前,我使用 webpack.DefinePlugin 找到了一个很好的解决方案。 我定义了一个 MYAPP_PRODUCTION 变量并在构建过程中通过 Webpack 替换它。 如果 MYAPP_PRODUCTION 为假,覆盖我的 keycloak object/export 并模拟所需的功能。

Webpack 配置:
更多信息:https://webpack.js.org/plugins/define-plugin/

new webpack.DefinePlugin({
  MYAPP_PRODUCTION: JSON.stringify(true),
  ...
}

应用内部引导

// sourcecode
if(!MYAPP_PRODUCTION) {
  // mock keycloak here
}

生产模式下的编译输出将不包含 if 子句中的语句。 webpack 将自动忽略条件内容,因为 if (!true) { ... } 永远不会为真。