当前位置: 首页 > news >正文

YonSuite单点登录

hello,好久没更新了,近期公司信息化改革,都在搞用友的YonSuite。
近几天搞了下YonSuite单点登录用于内部工作使用,简单讲解下吧。

目录

  • 单点登录流程(BIP/YonSuite均适用)
  • 单点登录开发

单点登录流程(BIP/YonSuite均适用)

简而言之,思路就是三部曲:
1、获取接口token(YonSuite内部调用时可跳过)
2、获取验证中心一次性code(需要传入系统用户唯一标识)
3、通过一次性code拼接地址跳转友互通验证登录
原地址在这

单点登录开发

这边开发我是采用了api的方式,按照以上思路我们先来看下“验证中心一次性code”的接口

字段说明:
thirdUcId是集成认证中心页面开放

userId是用户唯一标识就可以,一般可以传入手机号

开发代码(代码实例只供用友内部调用,原单点登录地址有外部JAVA实例)

letAbstractAPIHandler=require('AbstractAPIHandler');classMyAPIHandlerextendsAbstractAPIHandler{execute(request){try{//手机号varmobile=request.mobile;if(null==mobile||mobile.length==0){throw'手机号为空!';}mobile=mobile.replace('+86-','');//集成中心编码varthirdUcId='xxxx';//租户IDvartenantId='xxxx';//跳转URLvartargetUrl='https://xxxx.yonyoucloud.com';//登录页URLvarloginUrl='https://xxxx.yonyoucloud.com/login';//请求参数varrequestParam={thirdUcId:thirdUcId,userId:mobile,mobile:mobile};//集成认证中心获取登录临时codeletresult=openLinker('POST',ObjectStore.env().url+'/iuap-api-gateway/yonbip/yht/getThirdLoginCode','xxxx',JSON.stringify(requestParam));letresultJson=JSON.parse(result);if(null==result||null==resultJson||!resultJson.data||!resultJson.data.code){throw'集成认证中心获取登录临时code异常:'+JSON.stringify(result);}vartempCode=resultJson.data.code;//登录URL(https://euc.yonyoucloud.com/cas/thirdOauth2CodeLogin?thirdUCId={集成认证中心编码}&code={一次性code}&service=URLEncoder.encode("https://c3.yonyoucloud.com/login?tenantId=1233&service="+ URLEncoder.encode("{需要单点打开的BIP地址}"+ , "UTF-8"), "UTF-8"))varlastUrl='https://euc.yonyoucloud.com/cas/thirdOauth2CodeLogin?thirdUCId='+thirdUcId+'&code='+tempCode+'&service='+encodeURIComponent(loginUrl+'?tenantId='+tenantId+'&service='+encodeURIComponent(targetUrl));console.error(lastUrl);return{url:lastUrl};}catch(e){throwe;}return{};}}exports({entryPoint:MyAPIHandler});

实现效果:
这边是做了个表单,通过点击当前行的登录按钮获取当前行的手机号码调用以上的用友封装的API代码

有问题也可以提出探讨~下次再会

http://www.jsqmd.com/news/1391321/

相关文章:

  • howm开发指南:为这个Vim式窗口管理器贡献代码
  • OpenCore Legacy Patcher上手实录:旧Mac盘活新版macOS,三件事搞明白再动手
  • VoltageShift源码解析:从Kext驱动到用户空间工具实现
  • 探寻专业P3户外LED租赁屏制造商,解锁高品质显示新选择
  • 沃尔玛APP 礼品卡绑定算法分析
  • 旧 Mac 免费升级最新 macOS 的 5 步通关攻略:OpenCore Legacy Patcher 终极指南
  • 2026年鹰潭新媒体运营推广合规服务商中网创信有几种选择?交付能力与避坑要点 - 中国品牌价值观察网
  • MCC vs 传统3D重建:为什么Multiview Compressive Coding是未来趋势?
  • 2026外卖代运营靠谱推荐!美团服务市场实测测评与避坑指南 - 资讯综合
  • EndNote X9文献导入全攻略:五种方法构建高效科研知识库
  • 技术揭秘:Recognize背后的EfficientNet与MoViNet模型架构
  • 2026年穿透式监管平台厂商图谱:央国企智能化转型的3条路怎么选?
  • Ubuntu安装arm-linux-gcc交叉编译器:嵌入式开发环境搭建指南
  • 公司减资公告完登报流程是什么?减资公告登报模板怎么写?内附模板! - 信息快递
  • MES 推荐书籍与资源
  • 网盘下载慢到怀疑人生?3分钟装好这款免费开源脚本,九大网盘直链一键获取
  • 比例类A/B测试显著性判断:从统计原理到业务决策的完整指南
  • 从零搭建《求生之路2》专用服务器:原理、部署与插件生态全解析
  • 2026年怎么挑选靠谱的物联网APP开发公司?服务明细+避坑指南全分享 - 榜单测评
  • 电脑总在关键时刻自动休眠?NoSleep防休眠工具三分钟让你告别工作中断
  • Ubuntu安装配置arm-linux-gcc交叉编译器完整指南
  • 发布会越热闹,老 Mac 越心凉?OpenCore Legacy Patcher 免费焕新指南
  • 2026年香港审计公司哪家好?专业服务商盘点、筛选标准详解及签约避坑全指南 - 行业观察网
  • Containerd容器运行时:从核心架构到Kubernetes生产实践
  • 如何快速识别Go二进制文件?AlphaGolang的YARA规则实战教程
  • iPhone USB网络共享驱动装不上?一行PowerShell命令3分钟搞定
  • Django入门实战:从零搭建Python Web项目骨架与环境配置
  • 如何提升网站流量和转化率以及提高网站收录与权重? - 甄选测评馆
  • BT下载总连不上源?用这份公共Tracker清单,三分钟让种子活过来
  • 终极指南:Maps SDK for Unity 3D地图可视化完全上手教程