JEPaaS 社区

 找回密码
 立即注册
JEPaaS低代码平台-官网
查看: 1925|回复: 0

如何将一个功能通过链接在不登录的情况下可以访问

[复制链接]

47

主题

48

帖子

172

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
172
发表于 2021-6-24 14:42:48 | 显示全部楼层 |阅读模式
不需要登录就要能访问到某一个功能,在JEPAAS中实现这个需求有以下几步
  • 在相应的功能上增加一个按钮,如分享按钮
  • 写按钮事件,调运后台方法,生成对应链接
  • 具体代码:

  1. <font size="5"><font face="微软雅黑"><b>function(btn,event,eOpts){
  2.   var jegridview=btn.up("jegridview");
  3.   var funcInfo=jegridview.funcData.info;
  4.   var funcCode=funcInfo.funcCode;
  5.   var resObj=JE.ajax({url:"/je/project/product/jepm/cust/getLoginKey",params:{editUser:"0",showView:"grid",pkValue:"",funcCode:funcCode}});
  6. if(resObj.success){
  7. JE.alert("链接已经生成,链接为:<br/>"+"http://IP地址/loginforword.html?jekey="+resObj.obj); }else{ JE.alert('分享失败!');
  8.                                                                                       }
  9. }</b></font></font>
复制代码
  • 要生成的链接,首先要写一个后台controller与service,生成一个唯一key
  • 注意:此处的代码中usercode是定义好的用户编码,这个用户编码存在与员工管理,有不同角色和权限,当然可以根据不同需求用当前登录用户
  • 利用返回的唯一key,做rbac的登录过滤,此时需要一个前端loginforword,html
  • 具体代码:

  1. <font size="5"><font face="微软雅黑"><b><!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="utf-8">
  5.   <title>单点登录</title>
  6.   <script src="/static/ux/jquery/jquery-1.9.1.min.js"></script>
  7.   <script src="/static/ux/jquery/jquery.cookie.min.js"></script>
  8. </head>
  9. <body>
  10. <script>
  11.   //获取url中的参数
  12.   function getUrlParam(name) {
  13.       var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
  14.       var r = window.location.search.substr(1).match(reg); //匹配目标参数
  15.       if (r != null) return unescape(r[2]);
  16.       return null; //返回参数值
  17.   }
  18.   $(function () {
  19.       var jekey=getUrlParam("jekey");
  20.       $.ajax({
  21.           type:"POST",
  22.           url: "/rbac/login/login",
  23.           data: {loginType:"JEKEY",code:jekey},
  24.           success: function (data) {
  25.               //将获取的参数进行转换
  26.               if(data.code=='OK'){
  27.                   if(data.message){
  28.                       var infos=JSON.parse(data.message);
  29.                       var funcCode=infos.funcCode;
  30.                       var showView=infos.showView;
  31.                       var modelID=infos.modelID;
  32.                       $.cookie('authorization',data.obj);
  33.                       var url="/index.html?funcCode="+funcCode+"&showView="+showView+"&modelID="+modelID;
  34.                       if(showView=='grid'){
  35.                           url="/index.html?funcCode="+funcCode+"&showView="+showView+"&whereSql="+modelID;
  36.                       }
  37.                       window.location.href=url;
  38.                   }
  39.               }
  40.           }
  41.       })
  42.   });
  43. </script>
  44. </body>
  45. </html></b></font></font>
复制代码
  • 将写的界面路径加到security-url.xml进行过滤

  • 最终结果
  • 注意:以上方式适用于7.1版本
  • 7.2最新版本loginforword.html中的拼接方式有所不同,改成以下版本就可以使用



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|JEPaaS 低代码平台社区 ( 京ICP备18023569号 )

GMT+8, 2024-5-19 01:41 , Processed in 0.059288 second(s), 21 queries .

Powered by 北京凯特伟业科技有限公司

Copyright © 2001-2021, JEPaaS.COM

快速回复 返回顶部 返回列表