首页 > 解决方案 > 用于前端开发的可插拔 Keycloak-JS

问题描述

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

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

标签: javascriptreactjsauthenticationkeycloak

解决方案


目前,我使用webpack.DefinePlugin. 我在构建过程中定义了一个MYAPP_PRODUCTION变量并通过 Webpack 替换它。如果MYAPP_PRODUCTION是 false 覆盖我的 keycloak 对象/导出并模拟所需的功能。

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) { ... }它永远不会为真。


推荐阅读