独立版用户SSO登录说明
简介
当出现企业存在自己已有企业门户,不希望用户进行登录每刻时,不二次登录时,需要使用该文档内的内容来进行登录。 在企业将员工录入以后,进行单点登录前,需要先将员工账户激活绑定,不可以直接进行单点登录操作。
单点登录流程
企业用户点击每刻系统图标,访问企业自己的链接地址,然后在该页面中,通过自身的JSAPI获取用户登录信息,再将该信息交由客户方后端服务进行加密生成SSOToken。
BOSS系统接口地址
测试环境:https://uat.maycur.com/sso
正式环境:https://www.maycur.com/sso
对下方参数进行组装,访问每刻BOSS系统接口 完整链接示例:
参数说明:
- entCode:企业Code
- userId:登录员工的工号/手机号/邮箱(任一)(该员工在每刻必须为在职状态,若该员工为在职但未激活,且产品许可管理的许可授权设置为“自动授权”,则也可以正常跳转)
- timestamp:当前时间的毫秒时间戳
- token:按照如下token生成方式来进行生成
生成token所使用的java代码
String ssoSecret = "EC3BGYL7N8ALO1:5bdKFAMSWmclPc2UsxYlXL4Eq0ELuUTm";//该秘钥获取路径“设置-安全设置-系统安全策略-SSO”(若无此入口,需项目经理在boss系统开通相关许可)
long timestamp = System.currentTimeMillis();
String userId = "10001";
String token = DigestUtils.sha256Hex((ssoSecret + ":" + userId + ":" + timestamp).getBytes());
- language:语言类型,zh为中文,en为英文,该参数需要配合 ssoMode 参数使用,并设置值为 "sso"
- ssoMode:单点登录方式,用于区分 boss 登录和外部单点登录
- embed:是否隐藏菜单。默认为true,true为隐藏,false为不隐藏
- loginSrc:是否不将其他浏览器页签踢出登录状态,若为是,则参数填写为ngMsg
- fromApp: 对接平台标识(限定以下平台)。如当前SSO链接是在以下平台使用,需要拼接该标识。否则无法调用平台JSApi。
- wechat:对接企业微信
- ng_dingtalk: 对接钉钉
- feishu: 对接飞书
- thirdPartyId: 对接平台第三方id(限定平台)。与fromApp配对使用
- url:需要跳转的链接路径,不传则默认跳转到每刻系统首页,可跳转的地址如下:
单据审批页面:/approve/{formType}/{procTaskId}/{formDataCode}
- formType: 单据类型,可传如下值:REIMBURSE(报销单),PRECONSUME(申请单),CONTRACT(合同),LOAN(借款),INSTALLMENT(分期付款),PAYMENT(付款单),REPAYMENT(还款单)
- procTaskId:单据的procTaskId(工作流的任务Id),如果为空也要传null。(对应回调消息体的taskId字段)
- formDataCode: 单据的formDataCode,
- 注1:如需要隐藏单据详情底部的操作栏可传参数hideActionBar=true,例如 /approve/REIMBURSE/123456/123456?hideActionBar=true
- 注2:maycur系统会自动根据单据状态跳转相应页面,如当前单据是可编辑状态,则会自动跳转编辑页面,如需关闭这个功能请传 autoRedirect=false,例/approve/REIMBURSE/123456/123456?autoRedirect=false ,如果同时传了多个参数,请用英文分号(;) 连接,例如/approve/REIMBURSE/123456/123456?hideActionBar=true;autoRedirect=false
提单人单据详情页面:/mine/{formType}/{formDataCode}
- formType: 单据类型,可传如下值:REIMBURSE(报销单),PRECONSUME(申请单),CONTRACT(合同),LOAN(借款),REPAYMENT(还款单),PAYMENT(付款单)
- formDataCode: 单据的formDataCode
- 注:如需要隐藏单据详情底部的操作栏可传参数hideActionBar=true,例如 /mine/REIMBURSE/123456?hideActionBar=true
创建单据页面:/create/{formType}/{formSubTypeCode}
- formType: 单据类型,可传如下值:REIMBURSE(报销单),PRECONSUME(申请单),CONTRACT(合同),LOAN(借款),REPAYMENT(还款单),PAYMENT(付款单)
- formSubTypeCode: 单据小类的code: 单据的formSubTypeCode
账本页面:/expense/INDEX
待支付单据详情页面:/settlement/{settleType}/{formType}/{procTaskId}/{formDataCode}/{entrance}
- settleType: 支付类型,可传如下值:INDIVIDUAL_SETTLE(个人),COOPERATION_SETTLE(企业),SELF_EMPLOYED_SETTLE(个体工商户)
- formType: 单据类型,可传如下值:REIMBURSE(报销单),PRECONSUME(申请单),CONTRACT(合同),LOAN(借款)
- procTaskId:单据的procTaskId(工作流的任务Id),如果为空也要传null。
- formDataCode: 单据的formDataCode
- entrance: 单据的支付状态,可传如下值:SETTLEMENT_LIST_UNDEAL(待支付),SETTLEMENT_LIST_PAYING(支付中),SETTLEMENT_LIST_DEAL(已支付)
单据查询的单据详情页面:/receipt/{formType}/{formDataCode}(需有查看权限)
- formType: 单据类型,可传如下值:REIMBURSE(报销单),PRECONSUME(申请单),CONTRACT(合同),LOAN(借款),INSTALLMENT(分期付款),REPAYMENT(还款单),PAYMENT(付款单)
- formDataCode: 单据的formDataCode
- 注:如需要隐藏单据详情底部的操作栏可传参数hideActionBar=true,例如 /receipt/REIMBURSE/123456?hideActionBar=true
审批列表页面:/approvalList/{tabKey}
- tabKey: 标签页关键字,可传如下值:APPROVAL_PENDING(待审批列表)
签收审批页面:/signIn/{formCategoryCode}/{procTaskId}/{formDataCode}
- formCategoryCode:签收类型,可传如下值:SIGN (签收)
- procTaskId:单据的procTaskId(工作流的任务Id),如果为空也要传null
- formDataCode:单据的formDataCode
BOSS系统认证
在BOSS服务中,会使用参数中的entCode、userId、timestamp、accessToken,访问Auth服务进行登录信息认证。BOSS服务将登录信息认证完成后,经过服务集群选择,将请求转发到在BOSS服务中所配置的Landing地址。
跳转至对应页面
前端Landing地址中,对p参数进行解析,获取P参数中的accessToken与Url等信息,然后跳转到客户要跳转到url地址,如果url为空,则跳转到每刻系统首页。