KeyCloak實戰|Vue項目集成Keycloak


https://github.com/keycloak/keycloak/tree/master

 

 

keycloak是一個面向現代應用和服務的開源身份和訪問管理解決方案。它使得針對應用程序和服務的保護變得容易,幾乎不需要代碼。簡而言之,Keycloak的主要是為Web應用或者RESTful API提供SSO。

關於Keycloak的基礎知識,你可以自己下載。網上有很多入門的教程,本篇直接從JavaScript Adapter着手,使用Vue框架進行keycloak的集成。

我們這里用的是Vue中的keycloak插件vue-keycloak-js。原本我打算用原生的JavaScript Adapter來實現,但是頻繁遇到了跨域的問題。所以換成了vue-keycloak-js。插件的官方文檔vue-keycloak-js

一、下載和安裝

下載和安裝vue-keycloak-js,推薦使用cnpm,npm下載速度略慢。

cnpm i --save @dsb-norge/vue-keycloak-js 

二、引入和使用

首先需要引入vue-keycloak-js,如果你不是在App.vue中引入的話,那么還需要引入Vue。

import Vue from 'vue';

然后再引入vue-keycloak-js

import keycloak from '@dsb-norge/vue-keycloak-js';
    Vue.use(keycloak , {
        init: { onLoad: 'login-required' }, config: { url: 'http://localhost:8080/auth', realm: 'test', clientId: 'test-realm' }, onReady: (keycloak) => { keycloak.loadUserProfile().success((data) => { requestAuth; console.log(data); }); } });

因為我的項目中使用了Facade(門面模式),所以我需要在登錄界面中引入keycloak。因此就不在App.vue中引入了。

三、配置keycloak

通常來說,你看這篇文章之前應該已經配置好了keycloak。不過我在配置完js之后遇到了跨域問題。因此我在此處順帶說下。

首先需要添加一個域realm
image.png

然后在剛才添加的域下面添加一個客戶端Client
image.png

編輯客戶端,解決跨域問題。此處你應該在Web起源(Web origin)中填入你客戶端的URL地址。我這里因為是測試效果,所以填了*,但是這是不安全的,建議你按需要配置。
image.png

參考文章

vue中sso登錄使用VueKeycloak登錄

Keycloak doc:JavaScript Adapter

StackOverFlow:keycloak CORS Headers in 401


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM