仅在测试环境(开发)上禁用 vuejs 上的 keycloak

Disable keycloak on vuejs on test environment (development) only

我在VueJS项目上,这个配置:

let initOptions = {
    url: 'http://localhost:81/auth', realm: 'cmt', clientId: 'cmt_api', onLoad: 'login-required'
}

let keycloak = Keycloak(initOptions)

const routes = [
        { path: '/', name: 'MyFirstRoute', component: MyFirstRoute },
        { path: '/SecondWindow', name: 'SecondWindow', component: SecondWindow },
        { path: '/ThirdWindow', name: 'ThirdWindow', component: ThirdWindow },
        { path: '*', redirect: '/', },
]

const router = new VueRouter({
    mode: 'history',
    routes
})

const app = new Vue({vuetify,router,i18n,render: h => h(App)}).$mount('#app')

keycloak.init({ onLoad: initOptions.onLoad }).then(
(auth) => {
    if (!auth) {
        window.location.reload();
    } else {
        // Vue.$log.info("Authenticated");
       app
    }
}
)

我想将此配置用于生产、验收、Docker 测试,但仅用于开发测试,我不想使用 keycloak。 不幸的是,我没有找到一些回应。我在环境变量中创建(为 dev )布尔值 VUE_APP_DEV=true.

有人可以帮我完成代码以允许在不更改代码的情况下连接到应用程序(没有 keycloak)(在 main.js 中评论 keycloak 参考)

您可以使用process.env.NODE_ENV,在生产环境中运行时等于'production',在开发环境中运行时等于'development' - 所以你的代码:

if (process.env.NODE_ENV === 'production') {
   let keycloak = Keycloak(initOptions);
   keycloak.init({ onLoad: initOptions.onLoad }).then((auth) => {
    if (!auth) {
        window.location.reload();
    } else {
        // Vue.$log.info("Authenticated");
       app
    }
  })
}