臭名昭著aTrust隔离计划1.臭名昭著aTrust隔离计划2.VPN原理与aTrust隔离网络实践3.docker-easyconnect到底做了什么4.TUN(tunnel-隧道-虚拟网卡)模式
个人项目
personal(个人展示)GitHub Actions 自动部署个人展示项目
基于Quartz搭建的个人博客1.Quartz个人博客使用教程2.使用 rsync 增量部署 Quartz 博客3.使用 GitHub Actions 自动部署 Quartz 博客5.域名绑定6.CDN加速Obsidian、双向链接与知识图谱
旅行
行程攻略青岛三日游行程攻略
前端
NginxNginx配置与反向代理入门
Nodenpm与npx的区别
中华财险-公司项目
对外接口文档
基础数据码表对外接口(仅支持rpc调用)业务码表对外接口应用主数据对外接口
基础运营查询版本更新日志详情消息中心对外接口站内信对外接口站内信模板配置手册
权限中心权限中心对外接口文档(最新)权限中心对外接口文档前端ACL-CORE FACADE依赖版本
审计中心审计中心对外接口文档audit-center-facade版本
审批中心工作流迁审批流现状工作流迁审批流API能力替换方案老审批流接口文档审批中心接口文档审批中心业务回调FAQ
账号中心内部系统对接单点登录内部系统对接认证中心三方网页应用登录授权账号中心对外接口文档前端账号中心RPC接口文档账户变更对外广播消息文档账户中心对外接口HRMS外部员工变更广播消息文档HRMS外部员工对外接口
组织员工岗位🔥机构映射SDK接口文档员工岗位变更通知说明组织机构管营一体概念与用法组织员工对外广播消息文档组织员工岗位对外接口文档组织员工岗位对外接口文档前端组织员工岗位数据模型组织员工主数据业务场景案例organization-facade版本
hrms(大型人力资源外包管理系统)
项目架构说明HRMS Maven模块与依赖说明
项目说明0.流程中心模块0.组织模块说明1.业务线模块2.计划模块3.项目模块4.协议模块5.供应商模块6.合约域模块7.外包人员模块*核心:外包人员生命周期
项目运维外包人员项目编制差异排查与修复2.HRMS相关问题排查4.修改externalId(externalId和accountId不一致)
需求-系分
1.内部转外包0723外包人员关联历史内部账号系分新增外包人员关联历史账号内容(紧急0723上线)需求
2.工作岗位0820工作岗位0820需求工作岗位0820需求-系分
3.用工模式调整0917内部人员转外包用工系统需求2内部人员转外包用工系统需求-系分
sso(账号中心-单点登录)
项目架构说明aboss-sso项目架构入门AOP统一日志打印链路Maven多模块项目高级知识OAuth2.0
项目说明1.SSO-OAuth2.0与IDaaS登录流程2.外部账号创建流水号并发问题分析
AI
使用说明
第三方插件&技能简介Archify使用与安装指南Ponytail使用指南
CodexCodex CLI与IDE区别及使用指南Codex Hook单独配置与提交通知Codex MCP安装与使用指南Codex第三方插件安装与使用指南
Agent开发1.LLM、Token、上下文窗口与模型参数2.大模型 API、请求参数与响应结构3.Spring AI ChatClient4.Prompt、System Prompt、Prompt 模板6.结构化输出、JSON Schema7.SSE 流式响应8.会话 ID、聊天记录、Redis9.超时、重试、限流、降级10.完成可运行聊天接口
GitGit常用命令与Obsidian推送排查
Java
面试题Java基础与集合面试题
AtomicInteger原子计数与并发安全ConcurrentHashMap并发安全与计数Java线程、线程池与Future
python
基础Python基础语法
HTTPXHRMS员工详情接口调用(Python HTTPX)

https://cic_irc.yuque.com/tyl581/ggwv9w/edgtw1il5byz421g

登录流程概述

新一代网页应用登录是基于 OAuth 2.0 标准协议实现的,通过新一代账号授权登录第三方应用的能力。

时序图

准备工作

在使用网页应用登录能力之前,接入方需要准备好一个登录回调 URL ,如下所示:

例如:http://third-part.cic.inter/login/callback

作用:用于接收登录授权成功后的预授权码

将准备好的登录回调 URL 给到运营支撑域 @陈伟力 用于在idass创建一个应用, 并获得应用的 ClientID 和登录授权页面地址(AuthorizeURL)。

获取登录授权码

三方应用需要请求用户身份验证时,需要跳转至准备阶段获取的登录授权页面地址。

用户在此页面确认登录授权之后会产生一个授权码。

以“无人机系统”对接网页应用登录为例:

当用户访问“无人机系统”的网页,三方应用需要判断用户是否登录,如果已经登录则允许用户继续访问,否则跳转到准备阶段获取的登录授权页面。

用户在登录授权页面输入完账号密码验证通过后,还会进行人脸的二次认证,如果都验证通过将会自动重定向回到三方应用的登录回调 URL ,并将授权码 code 通过 query 方式携带给三方应用供后续使用。

例如:http://third-part.cic.inter/login/callback?code=asdfghjkl&state=zxccbnm

获取 token

将准备阶段获取的 ClientID 和上一步获取的授权码调用新一代接口,接口参考如下。

获取用户信息

将上一步获取的 token 调用新一代接口,接口参考如下。

对外API接口

三方应用调用新一代的所有接口都应该通过接入合作开放域网关方式调用接口。

合作开放域网关文档链接https://cic_irc.yuque.com/yii456/ko5mbu/cg6ldd

合作开放域网关对接人-陈继蒙

获取token(需要加签)

URL: /openapi/cic.aboss.aaas.v1.loginauth/1

Type: POST

Content-Type: application/json; charset=utf-8

Description: 出口唯一标识符:cic.aboss.aaas.v1.loginauth

Body-parameters:

ParameterTypeDescriptionRequiredSince
appIdstring登录appIdtrue-
loginCodestringoauth2登录codetrue-

Request-example:

curl -X POST -H 'Content-Type: application/json; charset=utf-8' -i /openapi/cic.aboss.aaas.v1.loginauth/1 --data '{
  "appId": "4",
  "loginCode": "974"
}'

Response-fields:

FieldTypeDescriptionSince
keystring登录成功返回的token键-
valuestring登录成功返回的token值-
expiresint64token超时时间(秒)-

Response-example:

{
  "accessToken": "20x2s2",
  "key": "5ot72u",
  "value": "f8z1cu",
  "expires": 694
}

获取用户信息(需要加签)

URL: /openapi/cic.aboss.aaas.v1.getuserinfo/1

Type: POST

Content-Type: application/json; charset=utf-8

Description: 出口唯一标识符:cic.aboss.aaas.v1.getuserinfo

Body-parameters:

ParameterTypeDescriptionRequiredSince
loginTokenstring登录tokentrue-

Request-example:

curl -X POST -H 'Content-Type: application/json; charset=utf-8' -i /openapi/cic.aboss.aaas.v1.getuserinfo/1 --data '{
  "第一个接口返回的key": "第一个接口返回的value"
}'

Response-fields:

FieldTypeDescriptionSince
accRolestring账户角色(1-普通用户,2-超管)-
accTypestring账户类型(0-内部,1-外部)-
accIdstring账户Id-
usernamestring账户名称(登录账户名)-
personNostring员工编号-
personNamestring人员名称-
substring账户Id-

Response-example:

{
  "accRole": "mnruhw",
  "accType": "5gynor",
  "accId": "4",
  "username": "morton.gleichner",
  "personNo": "yybyd3",
  "personName": "morton.gleichner",
  "permissionCode": "974",
  "sub": "7r0wz1",
  "channelType": "55fbbk"
}

常见问题

1. appId为空或appId未设置:未找到appId为xxxxx的应用

如图:

原因及解决办法:

  1. headers中的appId对应的应用未创建,需要在中华网关对应环境创建外部应用
  2. 地址错误,如:cft的请求地址填写到pft的地址
  3. 外部应用已创建,但appId填写错误

2. 鉴权失败:此appId【xxxxxxx】没有访问openapi的权限,OpenAPIName:【xxxxxx】

如图:

原因及解决办法:

中华网关上创建的应用未授权本次请求的api,需要先授权

3. 加签相关问题

原因及解决办法:

中华网关上创建应用时需要配置开启签名算法,配置好公钥私钥,对请求加签。

方法如下,具体可联系中华网关的老师进行对接,合作开放域网关文档链接https://cic_irc.yuque.com/yii456/ko5mbu/cg6ldd