VUE集成keycloak和Layui集成keycloak

摘要:
3) 填写客户信息。这里的ClientID在集成layui或vue时使用。我在这里把它设置为dianli。rootURL是在集成前端项目中集成keyclock之后要访问的程序的地址。2: Layui集成了keyclock 1并下载keyclock js受保护的应用程序需要在KeyclockClients中注册。ClientID是注册期间填写的应用程序的唯一标识。

一:KEYCLOAK配置部分:

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

    VUE集成keycloak和Layui集成keycloak第1张

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

    VUE集成keycloak和Layui集成keycloak第2张VUE集成keycloak和Layui集成keycloak第3张

    VUE集成keycloak和Layui集成keycloak第4张

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

   VUE集成keycloak和Layui集成keycloak第5张

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

  VUE集成keycloak和Layui集成keycloak第6张

  1)创建client

  VUE集成keycloak和Layui集成keycloak第7张

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

  VUE集成keycloak和Layui集成keycloak第8张

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

  VUE集成keycloak和Layui集成keycloak第9张

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

  VUE集成keycloak和Layui集成keycloak第10张

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

  VUE集成keycloak和Layui集成keycloak第11张 

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

  VUE集成keycloak和Layui集成keycloak第12张

  VUE集成keycloak和Layui集成keycloak第13张 

  设置密码,保存即可

  VUE集成keycloak和Layui集成keycloak第14张

  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第3张

免责声明:文章转载自《VUE集成keycloak和Layui集成keycloak》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇二维码扫描开源库ZXing定制化【转】SourceTree修改用户名和邮件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue 实现像web淘宝一样区域放大功能

vue 实现像web淘宝一样区域放大功能 效果是这个样子的 直接上自定义组件代码: <template> <div style="display: flex;position: relative"> <div : @mouseleave="mo...

vue 文件中的注释

在每个代码块内,注释的时候,需要使用各自语言的注释语法去注释(HTML、CSS、JavaScript、Jade 等)。在文件最顶部注释的时候用HTML的注释语法:<!— 在这里写注释的内容 --> 。 html 注释: <!-- 注释,单行或多行 --> pug(html) 注释:https://pugjs.org/zh-cn...

[javascript] js websocket断线重连库ReconnectingWebSocket

websocket在连接的时候 , 受网络影响 或者长时间没有通信被服务端关闭 , 都需要断线重连机制 自己写断线重连比较麻烦 , 可以使用这个js库 ReconnectingWebSocket.js  https://github.com/joewalnes/reconnecting-websocket/    直接下载min文件 , 引入就可以 使用的...

解决JS(Vue)input[type='file'] change事件无法上传相同文件的问题

一般的解决方法:Html <input id="file" type="file" onchange="upload()" /> JS 事件逻辑执行完之后执行: document.getElementById('file').value = null; Vue中 <input ref="referenceUpload" @change=...

vue不同环境下的配置

需求有时候,项目会有很多环境,比如最常用会有一下环境,develop:本地开发环境alpha:测试/预发布环境production:正式/生产环境不同环境下,打包、部署和api的调用都是不同的。如果每次都频繁修改代码,明显是不理智的那么有没有类似于java的springBoot可以按照命令调用不同配置文件启动呢? java -jar -Dspring.pr...

vue官网总结

1.Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统:2.在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例。 所有的 Vue 组件都是 Vue 实例,并且接受相同的选项对象 (一些根实例特有的选项除外)3.只有当实例被创建时就已经存在于 data 中的属性才是响应式的,vm.b = 不会触发视图的...