前端接入keycloak的几种方式

news/2024/11/17 18:22:53/

方式一:keycloak-js

这种方式就像使用QQ登录一样,登录会跳转到 keycloak 给的登录界面。

安装:

npm i keycloak-js

使用:

import Keycloak from 'keycloak-js'const keycloak: any = Keycloak({url: 'https://xxx.com/', // 远程地址realm: 'xxx',clientId: 'xxx'
})
keycloak.init({onLoad: 'login-required'}).then((auth: boolean) => {if (!auth) {window.location.reload();} else {new Vue({el: '#app',render: h => h(App, { props: { keycloak } })})}
})

详细请查看:https://www.keycloak.org/securing-apps/vue

退出登录:

keycloak.logout()

更多方法可以打印 console.log(keycloak) 查看

方式二:vue-keycloak-js

这个是针对 vue 项目封装的 keycloak-js。

安装地址:https://www.npmjs.com/package/@dsb-norge/vue-keycloak-js

安装:

npm i @dsb-norge/vue-keycloak-js 

使用:

import VueKeycloakJs from '@dsb-norge/vue-keycloak-js'Vue.use(VueKeycloakJs, {init: {onLoad: 'login-required'},config: {url: 'https://xxx.com/',realm: 'xxx',clientId: 'xxx'},onReady: (keycloak) => {new Vue({router,store,render: h => h(App)}).$mount("#app")// 获取用户的信息// keycloak.loadUserProfile().success((data) => {//   console.log(data)// })}
})

详细请查看:https://blog.csdn.net/weixin_44326389/article/details/121770219

方式三:RESTful API

这种试可以使用自定义的登录界面。

axios.post(`/keycloak/realms/xxx/protocol/openid-connect/token`, {client_id: 'xxx',username: 'xxx',password: 'xxx',grant_type: 'password',
}).then(res => {console.log(res) // 会返回包含 access_token 的信息,access_token 可在线解析成明文数据:https://jwt.io/
})

或者使用 jwt-decode 进行 access_token解析。

接口代理:

server: {proxy: {'/keycloak/': {target: 'https://xxx.com/',changeOrigin: true,rewrite: (path) => path.replace(/^\/keycloak/, ''),}}
},

其他接口请求需要加 token 验证(keycloak 使用的是 JWT):

axios({url: '/keycloak/user/list',headers: {'Authorization': `Bearer ${access_token}`}
}).then(res => {console.log(res)
})

最新内容请看原文链接:https://fenxianglu.cn/article/493


http://www.ppmy.cn/news/7637.html

相关文章

阿里妈妈内容风控模型预估引擎的探索和建设

作者:徐雄飞、金禄旸、滑庆波、李治 内容作为营销的重要载体,能够促进信息的交流和传播。在营销场景中,广告高曝光的特性放大了风险外漏带来的一系列问题,因此对内容的风控审核就显得至关重要。本文将为大家分享阿里妈妈内容风控模…

AI小组2022总结

时间如流水,2022年即将过去,也到了一年一度年终终结的时候。CSDN-AI小组在2022年在AI之路上又有哪些积累呢? 问答机器人 在chatGPT风靡的时候,所有人都被它的强大惊叹到了。chatGPT的实用范围还有待各种不同的用户去尝试。从技术…

带你认识不一样的人工智能

人工智能简称AI,它是研究、模拟、延伸和扩展人类智能的理论、方法、技术和应用系统的新兴技术。人工智能是计算机科学的一个领域,正在向机器传递智能,通过模拟人的某些思维过程和智能行为,让机器像人类一样工作、反应和决策。自人…

反向传播算法和计算图详细介绍及其原理详解

相关文章 梯度下降算法、随机梯度下降算法、动量随机梯度下降算法、AdaGrad算法、RMSProp算法、Adam算法详细介绍及其原理详解反向传播算法和计算图详细介绍及其原理详解 文章目录相关文章前言一、反向传播算法1.1 什么是反向传播算法?1.2 更泛化的例子二、计算图2…

【vector的各个begin迭代器详解】

前言 本文是熊猫练习stl一段时间之后,对vector容器的各种迭代器产生了很大的好奇心,于是对它们进行了以下探究。 从图中我们可以知道,vector一个有四组不同的迭代器, 其中,字符 ‘c’ 是 const 常量的意思&#xff0c…

企业需要防范的 6 个常见身份攻击手段|身份云研究院

零信任作为新一代的网络安全防护理念,已经成为全球网络安全管理的基石。零信任的核心是 「安全体系架构从网络中心化走向身份中心化」,「以身份为中心」的网络访问控制理念也逐渐被越来越多企业接受并实践。 然而企业在面向用户身份访问和管理的实践中还…

建模杂谈系列190 APIFunc 调用 APIFunc

说明 从工作的划分和复用上,这种模式是必须 还是积木拼凑的思维,之前的APIFunc实现时,已经发现有一些过程是会被经常复用的。这些连续的过程,可以称之为会话,或者说是链,都是一个意思。 APIFunc在定义的时候,需要在字典中定义若干不重名的函数,所以之前有一个思路是:…

Java BigDecimal总结

文章目录Java BigDecimal总结概述float 和 double的问题创建BigDecimal对象BigDecimal.valueOf()源码分析equals() 和 compareTo()BigDecimal设置精度和舍入模式舍入模式介绍BigDecimal转字符串DecimalFormat 格式化总结Java BigDecimal总结 概述 BigDecimal类在Java的java.m…