用于前端开发的可插拔 Keycloak-JS
Pluggable Keycloak-JS for Frontend Development
我们正在使用 Keycloak
和 keycloak-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) { ... }
永远不会为真。
我们正在使用 Keycloak
和 keycloak-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) { ... }
永远不会为真。