keycloak Vue集成

首先需要安装keycloak,可以使用docker安装。然后创建realm和client。

然后创建vue3项目
npm init vue@latest。
在项目中安装keycloak.js:
npm install keycloak-js

然后,在main.js中声明keycloak:

import './assets/main.css'

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

import Keycloak from "keycloak-js";

const keycloak = new Keycloak({
    url: "http://localhost:8080",
    realm: "quickstart",
    clientId: "spa",
  });
  window['keycloak'] = keycloak;
await keycloak.init({ onLoad: "login-required" });

const app = createApp(App)

app.use(router)

app.mount('#app')

注意,使用window保存keycloak全局变量,这样在其它页面可以通过这个变量访问keycloak。

比如,访问用户的accesstoken:
keycloak.token
如果解析token:
keycloak.tokenParsed
还可以访问idtoken:
keycloak.idTokenParsed

使用accesstoken可以访问资源服务器。首先安装axios,然后通过axios访问资源:

created: async function () {
    var keycloak = window['keycloak']
   
    this.token = keycloak.tokenParsed
    
     const res = await axios({
      url: "http://localhost:3000/secured",
      method: 'get',
      headers: {
        Authorization: " Bearer " + keycloak.token
      }
    }) 

接下来可以创建资源服务器。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容