启动插件校验机制实现免登录功能-支持云之家集成与JSON参...

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

启动插件校验机制实现免登录功能-支持云之家集成与JSON参...

本篇基础:BOS平台的二开编程(论坛),C#编程(ms),python语法,javascript基础,json语法,xml语法,VistualStudio2012(up)工具(ms),http/https基础知识,iis基础知识


原始地址:https://vip.kingdee.com/article/34918 


启动插件校验机制实现免登录功能-支持云之家集成与JSON参数集成(第三篇)


启动插件校验机制实现免登录功能,【简单通行证】方式】的基础上,

我们进行了功能延伸,实现三个扩展:(2018-04-12之后的最新版本功能包


1、用户集成参数实现V2版本,支持JSON参数集成;


2、云之家轻应用直接打开金蝶云功能;


3、云之家集成与简单通行证集成方法都作为金蝶云系统出厂功能默认运行;




startapp.webp



(金蝶云统一认证--校验UD参数处理逻辑示意图)


1、集成用户参数V2.0版本格式,支持JSON参数集成

1.1、使用实例

     http://xxx.xxx.xxx.xxx/k3cloud/html5/index.aspx?ud={dbid:'5ab1f8916d8741',username:'Demo',appid:'hr',signeddata:'151a2724d91cb756fa59b257e0896bcd161436a8',timestamp:'1522639013',

lcid:'2052',usertoken:'',formid:'PUR_PurchaseOrder',pkid:'10001',formtype:'list',otherargs:'|hello',origintype:'SimPas',entryrole:'HTML5' }

(tips:ud参数也支持进行utf8转换后转为base64字符串形式进行传递, 参考1.1.3)


1.1.1、 轻量级入口地址:【http://xxx.xxx.xxx.xxx/k3cloud/html5/lightstartapp.aspx?ud=...】优化资源,实现轻量级登陆加载,配合openmode=single起作用;(仅HTML5端支持,2019-03-13补丁 PT132327  [7.3.1199.6]

   (openmode=single时的演示动画

OpenModeSingle.webp


1.1.2、 如果用户名是双字节的,(私有云,单租户 部署环境下)

     如果用户名是双字节的,需要在app_data/common.config的appsettings节点中做如下配置:

    <add key ="StartAppPluginUDConfig" value="{encoding:'utf-8'}" />


1.1.3、如果用户名是双字节的,(私有云,单租户, 多租户 部署环境下)

    对生成好的ud参数整体进行基于Utf-8的Base64的编码,并在url地址增加url参数 &udencoding=utf-8 即可。例如:https://xxx/k3cloud/html5/index.aspx?udencoding=utf-8&ud=###  ;(PT-146869 [7.6.0.202103] 2021/3/25  7.6.2122.7 


1.2、协议内容解析(演示例子中的参数协议,具体实际应用可以自定义,但基本参数不能缺少)

参数格式】:ud={dbid:'xxx',username:'xx',appid:'xx',signeddata:'xxx',timestamp:'1522639013',

lcid:'2052',usertoken:'',formid:'PUR_PurchaseOrder',pkid:'10001',formtype:'bill',otherargs:'|hello',origintype:'SimPas',entryrole:'HTML5', openmode: 'Single'}

参数说明】:

dbid:数据中心的ID;

username:用户名称;

appid:应用程序ID,通过Administrator登录数据中心后,在【系统管理】分类的【第三方系统登录授权】功能里面进行新增维护;(云之家可以不填由querystring参数决定)

signeddata:参考文章【https://vip.kingdee.com/article/37406】;

timestamp:登录时间戳(Unix时间戳,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数);

lcid(可选):语言ID,中文2052(默认),英文1033,繁体3076;

origintype: XT=云之家集成(同时要求entryrole=XT);SimPas=简单通行证集成;

entryrole:验证权限的入口角色;

formid: 登录后默认打开功能的表单id;

formlayoutid: 登录后默认打开功能的表单的视图布局id;

formtype:登录后默认打开功能的格式,单据:bill或空, 列表:list, 万能报表:wnreport, 直接sql报表:sqlreport, 系统报表:sysreport, 树形报表:treereport, 移动报表:movereport, 动态表单:dynamicform ;

formargs: 表单初始化自定义参数formargs,能设置boside中发布的自定义参数。仅V2版本协议支持该参数,V1版本不支持。 formargs为json格式字符串例如人人报销首页参数{ "KD_Html5_FormTheme_Name": "Galaxy" } 。PT-146869 [7.6.0.202103] 2021/3/25  7.6.2122.7 ),参考答疑篇疑问33

openmode: 登陆后打开指定功能单据的模式,空白=原有主控模式,Single=单独打开指定单据(没有主控功能,仅HTML5端支持,需要配合轻量级入口地址:【http://xxx.xxx.xxx.xxx/k3cloud/html5/lightstartapp.aspx?ud=...】)(2019-03-13补丁 PT132327  [7.3.1199.6]);

pkid:formid对应表单的主键;formtype为list时忽略,formtype为 bill时起作用,如果为空表示新增状态;

otherargs:作为用户自定义参数传入,使用于二开,具体内容和格式由二开人员确定,最终在指定表单的插件中通过GetCustomParameter(FormConst.StartAppArgs)获取,具体参考【https://vip.kingdee.com/article/37644】

特别注意:由于仅仅通过URL进行传递参数,不能传递太多数据,建议预先通过WebApi存储数据到服务器,然后仅传递该数据的唯一索引即可,在具体单据业务插件中通过该唯一索引提取数据即可。


2、云之家轻应用直接打开金蝶云功能

2.1、使用实例

http://xxx.xxx.xxx.xxx/k3cloud/html5/index.aspx?ud={"dbid":"xxxx","entryrole":"XT","lcid":2052,"origintype":"XT","formid":"PUR_PurchaseOrder","formtype":"bill","pkid":""}

(tips:ud参数也支持进行utf8转换后转为base64字符串形式进行传递)


2.2、协议内容解析(演示例子中的参数协议,具体实际应用可以自定义,但基本参数不能缺少)

参数格式】:

ud={"dbid":"xxxx","entryrole":"XT","lcid":2052,"origintype":"XT","formid":"PUR_PurchaseOrder","formtype":"bill","pkid":""}

参数说明】:

dbid:数据中心的ID;

entryrole:验证权限的入口角色;

lcid(可选):语言ID,中文2052(默认),英文1033,繁体3076;

origintype: XT=云之家集成(同时要求entryrole=XT);SimPas=简单通行证集成;

formid: 登录后默认打开功能的表单id;

formtype:登录后默认打开功能的格式,单据:bill或空, 列表:list, 万能报表:wnreport, 直接sql报表:sqlreport, 系统报表:sysreport, 树形报表:treereport, 移动报表:movereport, 动态表单:dynamicform ;

pkid:formid对应表单的主键;formtype为list时忽略,formtype为 bill时起作用,如果为空表示新增状态;

otherargs:作为用户自定义参数传入,使用于二开,具体内容和格式由二开人员确定,最终在指定表单的插件中通过GetCustomParameter(FormConst.StartAppArgs)获取,具体参考

https://vip.kingdee.com/article/10881 】https://vip.kingdee.com/article/10881


spec tips:由于仅仅通过URL进行传递参数,不能传递太多数据,建议预先通过WebApi存储数据到服务器,然后仅传递该数据的唯一索引即可,在具体单据业务插件中通过该唯一索引提取数据即可。


3、云之家集成与简单通行证集成方法都作为金蝶云系统出厂功能默认运行

3.1、在common.config中配置启用启动校验逻辑

3.2、修改配置文件应用服务器的站点目录WebSite/App_Data/Common.config,在appsettings节点下增加如下项目

<!--启动服务插件-->

<add key ="StartAppPlugin" value="Default" />

3.3、如果已经做了第三方启动插件的客户,可以在第三方插件校验完成返回时,设置返回对象StartAppResult.Cancel=false,实现默认的V2协议校验和云之家启动校验,

如果第三方校验成功,设置StartAppResult.Cancel=true来终止默认校验;


4、云之家的回调完整连接应该是这样的
http://localhost:1200/silverlight/index.aspx?ud=xxxx &appid=1xxx0&ticket=APPURLWITHTICKET0xxxxxxxx1e54bee86cd4b&expiretime=3589&state=12345678


(A)基础前置参考:第二篇 『启动插件校验机制实现免登录功能,【简单通行证】方式』

(B)如何配置云之家轻应用:https://vip.kingdee.com/article/151583


5、【云之家单点登陆金蝶云K/3cloud实施指南】 

 https://vip.kingdee.com/article/34650   




--附录---------------- 参考帖子区 ----------------------

星空第三方免登资料参考链接

https://vip.kingdee.com/article/221201966503051264 


------------------------------------------------------

编辑于2021年6月29日 16:07:39

编辑于2021年8月27日 10:18:31

编辑于2021年9月3日 13:24:16


启动插件校验机制实现免登录功能-支持云之家集成与JSON参...

本篇基础:BOS平台的二开编程(论坛),C#编程(ms),python语法,javascript基础,json语法,xml语法,VistualStudio2012(up)工具(ms),http/...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息