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

Posted

技术标签:

【中文标题】用于前端开发的可插拔 Keycloak-JS【英文标题】:Pluggable Keycloak-JS for Frontend Development 【发布时间】:2021-07-15 12:28:24 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

目前,我使用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) ... 永远不会为真。

【讨论】:

以上是关于用于前端开发的可插拔 Keycloak-JS的主要内容,如果未能解决你的问题,请参考以下文章

Servlet3.0的可插拔功能

Clojure 中的可插拔向量处理单元

带你手写基于 Spring 的可插拔式 RPC 框架整体结构

Pytorch实现对卷积的可插拔reparameterization

带你手写基于 Spring 的可插拔式 RPC 框架注册中心

带你手写基于 Spring 的可插拔式 RPC 框架介绍