一:KEYCLOAK配置部分:

  1,下载keycloak,官网地址:https://www.keycloak.org/downloads.html。下载第一个就行

    

  2,下载完毕之后,打开文件,访问 bin 路径,点击 standalone.bat 打开,打开之后大概如下:

    

    

  3,然后访问:http://localhost:8080/auth/ ,下面也有一个本地路径,在浏览器访问会告诉你启动成功。

  

  4,点击进入控制台,添加realm(与master管理员区分开,建议添加此项个人域),之后按照步骤点击。

  

  1)创建client

  

  2)创建完realm之后,再创建client,点击左侧client,然后create。

  

  3)填写client信息,此处的Client ID是集成layui或vue的时候需要用到的,这里我设置成dianli,root URL是集成前端项目集成keycloak之后访问程序的地址。这个地址在建成client之后可以修改增加或者删除,这里可以先填写或不填写。

  

  4)填写完毕之后保存save,然后来进行配置,点击clients 选择自己刚刚创建的。

  

  5)如图,我们配置了Access Type为public,普通用户登录选择publi即可;配置Valid Redirect URLS,这是认证成功后跳转到的页面地址,这里用的通配符*。

   

  6)接下来,创建用户角色,点击user,然后add user

  

  

  设置密码,保存即可

  

  7)到此,简单的单点认证就配置完毕,接下来就是集成layui或者vue。

二:layui集成keycloak

  1,下载keycloak.js。百度搜索下载即可

  2,script引入js

  3,layui集成:

layui.use(['element','keycloak'], function () {
var keycloak = layui.keycloak;
var $ = layui.jquery, element = layui.element;
keycloak.init({ onLoad: 'login-required',checkLoginIframe: false}).success(function () {
console.log(keycloak.tokenParsed);
console.log('用户名:'+keycloak.tokenParsed.preferred_username);
//如需要以下可以调用ajax方法将keycloak用户名传入后台获取用户详细信息
}).error(function () {
console.log("failed to login");
});
$('#logOut').on('click', function () {
     //退出程序
keycloak.logout();
})
});

  4,keycloak.json 配置

{
"realm": "electricity", //Realm名称
"auth-server-url": "http://localhost:8080/auth/", //Keycloak server地址,通常为http://{host}:{port}/auth。
"ssl-required": "electricity", // 与Keycloak server通信的协议,目前值为none,即使用HTTP。
"resource": "dianli", // 应用的Client ID。需要将受保护的应用注册在Keycloak Clients中,Client ID即为注册时所填写的应用的唯一标识。
"public-client": true, // 值为true时,应用不需要向Keycloak server提供credentials。
"verify-token-audience": true,
"use-resource-role-mappings": true,
"confidential-port": 0
}

三:VUE 集成keycloak

前端代码部分:

  1,安装 keycloak ==>  cnpm i --save @dsb-norge/vue-keycloak-js

  2,在 main.js里面引入keycloak模块 ==>  import keycloak from '@dsb-norge/vue-keycloak-js'

  3,在main.js添加对应的代码

Vue.use(keycloak, {
init: {
onLoad: 'login-required',
checkLoginIframe: false // 防止登陆之后无限刷新
},
config: {
url: window.SITE_CONFIG['keycloakURL'], //keycloak的client配置地址: (http:ip地址或localhost:端口号/auth)
realm: 'electricity', // keycloak的client名称
clientId: 'dianli' // keycloak的clientid
},
onReady: (keycloak) => {
  //console.log(keycloak);//这里打印看看keycloak有哪些属性或方法。登入登出初始化方法都有。
keycloak.loadUserProfile().success((data) => {
http.post(window.SITE_CONFIG['apiURL'] + `/login`, { username: data.username }).then(({ data: res }) => {
Cookies.set('token', res.data.token);
router.replace({ name: 'home' }}
})
})
}
})

至此,kaycloak集成完毕。开启本地项目,访问之前配置的http://。。。登陆用户,认证成功即可访问项目。

PS:若有错误,欢迎指正,谢谢!!

VUE集成keycloak和Layui集成keycloak的更多相关文章

  1. 持续集成篇 --Hudson持续集成服务器的安装配置与使用

    样例项目参考视频教程:http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53 IP:192.168.4.221  8G内存 ...

  2. 持续集成篇_08_Hudson持续集成服务器的使用(自动化编译、分析、打包、部署)

    持续集成篇_08_Hudson持续集成服务器的使用(自动化编译.分析.打包.部署) 1.创建任务 svn用户验证 验证通过 *****五颗*表示每分钟检查svn路径是否有变更,有变更就会重新构建,相当 ...

  3. vue+cordova构建跨平台应用集成并使用Cordova plugin

    安装 //安装 vue-cil npm install --global vue-cli //安装cordova npm i cordova -g cordova 新建项目 //新建cordova 项 ...

  4. 「Vue」vue-cli 3.0集成sass/scss到vue项目

    vue-cli 3提供了两种方式集成sass/scss: 创建项目是选择预处理器sass手动安装sass-loader创建项目选择预处理器sass$ vue create vuedemo? Pleas ...

  5. layui 集成第三方和自定义组件到模块规范

    1.新建一个layui.extend.js文件,页面调用时这个文件放到layui.js后面. 2.基础的配置卸载config中,扩展的组件写入extend,组件的路径是相对于config下base的路 ...

  6. Vue开发环境安装并集成element-ui示例

    此文为转载,原文链接:https://blog.csdn.net/weixin_44670973/article/details/88871106 在此对原文中部分内容进行补充. 补充:element ...

  7. Jenkins+MSbuild+SVN实现dotnet持续集成 快速搭建持续集成环境

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建dotnet持续集成环境 一.准备工作 1.系统管理-->管理插件-->可选插件中找到MS ...

  8. iOS应用之微信支付集成-直接前端集成

    所有信息的生成都在前端完成,包括对订单进行sign签名以及MD5签名加密(此方法相对来说有些复杂,没有官方给的方法简单).注:官方给的是v3&v4支付流程,签名和加密都是在服务器端进行,由于没 ...

  9. 快速集成图片浏览器快速集成图片浏览器->MJPhotoBrowser的使用

    介绍: 一个比较完整的图片浏览器,高仿了新浪微博的图片浏览效果,功能包括:下载浏览互联网图片,点击缩略图全屏显示图片.当加载较大图片时会出现圆形进度条,滑动浏览所有图片.保存图片到本地相册.GIF图片 ...

随机推荐

  1. SSH公/私秘钥的生成及使用

    如果使用GitHub比较多的朋友,对SSH Key肯定也不陌生,当我们SSH进行代码的pull&push时,往往需要我们配置SSH Key. 如果Linux用的多朋友,肯定对SSH Key都很 ...

  2. 接口测试 再也不必来回切换,发现一个接口测试软件,可以替代 Swagger+Mock+Jmeter+Postman

    ​ 前言 日常测试过程中,常常需要多种工具来接力完成自己的接口测试任务. 比如说, 使用swagger查看接口文档, 使用mock编造接口数据对前端页面做测试 使用postman测试后端接口, 用Jm ...

  3. centOS8安装java14

    一.去官网下载相应的linux版本 二.通过xftp把下载下的文件传输到linux下指定目录 三.使用命令 rpm -ivh 安装(tar.gz 使用 tar zxvf 命令) 四.配置环境变量   ...

  4. 新建koa2项目

    1.npm install -g koa-generator 2.koa2 项目名称,如果需要ejs引擎koa2 -e 项目名称 3.cd 项目名称 4.npm install 5.npm insta ...

  5. nuxt中报window is not defined

    1.如果是引用插件报错的话,原因是在服务端渲染时找不到window,这样在插件引入位置把ssr设置为false即可. plugins: [ { src: '@/plugins/iview', ssr: ...

  6. vue render中如何正确配置img的路径

    第一种:适用于静态路径 attrs: { src: require('../common/images/logo.png'), title: 'img' } 第二种:适用于动态路径 domProps: ...

  7. spring源码之refresh第二篇

    大家好,我是程序员田同学 上篇文章对spring核心启动方法refresh做了整体的解读,但是只是泛泛而谈,接下来会出一系统文章对每个方法的源码进行深刻解读. 第一篇文章见 spring源码之方法概览 ...

  8. efcore使用ShardingCore实现分表分库下的多租户

    efcore使用ShardingCore实现分表分库下的多租户 介绍 本期主角:ShardingCore 一款ef-core下高性能.轻量级针对分表分库读写分离的解决方案,具有零依赖.零学习成本.零业 ...

  9. 【刷题-LeetCode】289. Game of Life

    Game of Life According to the Wikipedia's article: "The Game of Life, also known simply as Life ...

  10. 【刷题-LeetCode】153 Find Minimum in Rotated Sorted Array

    Find Minimum in Rotated Sorted Array Suppose an array sorted in ascending order is rotated at some p ...