我之前开发过几款使用Keycloak进行身份验证和授权的Vue应用,对于Vue应用,Keycloak提供了一个解决方案,只在用户通过身份验证时初始化应用,就可以保证未经身份验证的用户无法加载Vue应用。
keycloak.init({ onLoad: initOptions.onLoad }).then((auth) => {
if (!auth) {
window.location.reload();
} else {
Vue.$log.info("Authenticated");
new Vue({
el: '#app',
render: h => h(App, { props: { keycloak: keycloak } })
})
}
...
现在,我正在做一个Svelte项目,我想应用同样的方法。有没有一种方法可以基于承诺初始化一个Svelte应用程序,类似于在Vue中使用Keycloak的方式?
我已经尝试过寻找解决方案,但我一直未能找到任何专门解决这个问题的苗条。
对我来说,最大的优点是您总是100%确定用户通过了身份验证,并且您总是可以访问JWT令牌,以便在必要时发送到后端。
1条答案
按热度按时间but5z9lq1#
单独使用Svelte时,可以使用客户端组件API
在SvelteKit应用中,您可以使用src/routes/+ layout. js添加全局行为:
x一个一个一个一个x一个一个二个x
当
data.keycloak
未定义时,验证失败。这允许有条件地呈现内容。(the代码示例假定keycloak是客户端身份验证)