独立版用户SSO登录说明

简介

当出现企业存在自己已有企业门户,不希望用户进行登录每刻时,不二次登录时,需要使用该文档内的内容来进行登录。 在企业将员工录入以后,进行单点登录前,需要先将员工账户激活绑定,不可以直接进行单点登录操作。

单点登录流程

企业用户点击每刻系统图标,访问企业自己的链接地址,然后在该页面中,通过自身的JSAPI获取用户登录信息,再将该信息交由客户方后端服务进行加密生成SSOToken。 sso

BOSS系统接口地址

测试环境:https://uat.maycur.com/sso
正式环境:https://www.maycur.com/sso

对下方参数进行组装,访问每刻BOSS系统接口 完整链接示例:

https://uat.maycur.com/sso?entCode={entCode}&userId={userId}&timestamp={timestamp}&token={token}&ssoMode=sso&language=zh&url={url}&embed=true&fromApp=wechat&thirdPartyId=xxxxx&loginSrc=ngMsg

参数说明:

  • 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为空,则跳转到每刻系统首页。

Copyright © 杭州每刻科技有限公司 www.maycur.com all right reserved,powered by Gitbook该文件修订时间: 2024-11-20 10:52:00

results matching ""

    No results matching ""

    results matching ""

      No results matching ""