# 模拟登录
本章节主要用于后端开发人员在开发接口中调试接口场景中使用。
因业务场景需要,本平台中的接口默认需要先登录,然后在header中携带认证信息才可以正常访问,否则会提示{"code":"4001","msg":"token过期","data":null,"uri":null}
,此时参考下面的流程在请求中携带认证标识access-token,才可以正常访问接口。
如果您的接口因特殊的业务要求不需要登录即可访问,可以到配置文件中配置跳过登录验证即可。
hos-security:
login:
white-list:
- /api/otp-auth/forget-code
- /core/system/files/other/**
- /openApi/**
# 获取Token
获取Token接口是为了获取认证信息token,后续其他接口都需要携带访问token才能正常进行调用和访问, 其他接口必须将token放在请求头header中。
# 简版
登录接口地址:http://ip:端口/api/security/token 请求类型为post
使用接口测试工具,以postman举例:
提示
端口、ip、/api(应用访问路径)需要根据实际配置修改,/security/token是登录接口固定地址。
- 接口入参:
参数 | 值 | 说明 |
---|---|---|
loginName | admin | 必要参数;登录名,默认管理员登录名admin |
password | 187b5b7a08255aad6a1b6d0ce635bf21 | 必要参数;密码,这个是值为111111加密后的值; |
grantType | password | 必要参数;登录类型,默认未password; |
- 接收参数说明:
参数名称 | 参数说明 | 备注 |
---|---|---|
code | 状态码 | 成功为200 |
msg | 提示信息 | 成功为success |
accessToken | 访问令牌 | 登录接口调试主要获取的信息 |
refreshToken | 刷新令牌 | |
expiresIn | 过期时间 | 当前下发令牌过期时间 |
type | 登录类型 | form为表单,oauth为统一认证 |
- 接收参数事例如下:
{
"code": "200",
"msg": "成功",
"data": {
"expiresIn": 259199,
"accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJob3NVc2VyIjp7ImFjY291bnRDb2RlIjoiYWRtaW4iLCJhY2NvdW50SWQiOiI0MmJhMDk4ODg2NmU0M2U5YTMwODZlZjE5ZWJlNjgwNiIsImFjY291bnROYW1lIjoi6LaF57qn566h55CG5ZGYIiwiZ3JhbnRUeXBlIjpudWxsLCJpbml0TG9naW5UaW1lIjpudWxsLCJwaG9uZU51bWJlciI6bnVsbCwicG9zdEZpcnN0UGFnZSI6bnVsbCwicG9zdElkIjpudWxsLCJwb3N0TmFtZSI6bnVsbCwidGVuYW50SWQiOm51bGwsInBhc3N3b3JkIjoiIiwidXNlck5hbWUiOiLotoXnuqfnrqHnkIblkZgiLCJhY3Rpdml0eSI6dHJ1ZSwibG9ja2VkIjpmYWxzZSwidW5sb2NrRGF0ZSI6MTY5NDQzNjQxODAwMCwibGFzdExvZ2luRGF0ZSI6MTY5NDIyNDg3NzAwMCwibGFzdFVwZGF0ZVBhc3N3b3JkIjoxNjk0MjI0ODc3MDAwLCJjcmVhdGVUaW1lIjpudWxsLCJuZWVkUmVzdFBhc3N3b3JkIjpmYWxzZSwiaXAiOm51bGwsImxvZ2luRGF0ZSI6bnVsbCwiYnJvd3NlIjpudWxsLCJvcyI6bnVsbH0sIkBjbGFzcyI6ImNvbS5tZWRpd2F5Lmhvcy5zZWN1cml0eS5jb3JlLnVzZXJkZXRhaWxzLkhvc1VzZXJEZXRhaWxzIiwiZXhwIjoxNjk1MzcxMjA0LCJpYXQiOjE2OTUxMTIwMDQsImp0aSI6IjIzN2U1MWIwMGNlMDQxN2FhMmE2YzBkOTExNjg2MGU2In0.GSeIMR1YawW_ntta-Ymras0P2OSsDD7gxp0uee-3htU",
"type": "form",
"refreshToken": "eyJhbGciOiJIUzI1NiJ9.eyJob3NVc2VyIjp7ImFjY291bnRDb2RlIjoiYWRtaW4iLCJhY2NvdW50SWQiOiI0MmJhMDk4ODg2NmU0M2U5YTMwODZlZjE5ZWJlNjgwNiIsImFjY291bnROYW1lIjoi6LaF57qn566h55CG5ZGYIiwiZ3JhbnRUeXBlIjpudWxsLCJpbml0TG9naW5UaW1lIjpudWxsLCJwaG9uZU51bWJlciI6bnVsbCwicG9zdEZpcnN0UGFnZSI6bnVsbCwicG9zdElkIjpudWxsLCJwb3N0TmFtZSI6bnVsbCwidGVuYW50SWQiOm51bGwsInBhc3N3b3JkIjoiIiwidXNlck5hbWUiOiLotoXnuqfnrqHnkIblkZgiLCJhY3Rpdml0eSI6dHJ1ZSwibG9ja2VkIjpmYWxzZSwidW5sb2NrRGF0ZSI6MTY5NDQzNjQxODAwMCwibGFzdExvZ2luRGF0ZSI6MTY5NDIyNDg3NzAwMCwibGFzdFVwZGF0ZVBhc3N3b3JkIjoxNjk0MjI0ODc3MDAwLCJjcmVhdGVUaW1lIjpudWxsLCJuZWVkUmVzdFBhc3N3b3JkIjpmYWxzZSwiaXAiOm51bGwsImxvZ2luRGF0ZSI6bnVsbCwiYnJvd3NlIjpudWxsLCJvcyI6bnVsbH0sIkBjbGFzcyI6ImNvbS5tZWRpd2F5Lmhvcy5zZWN1cml0eS5jb3JlLnVzZXJkZXRhaWxzLkhvc1VzZXJEZXRhaWxzIiwiZXhwIjoxNjk1NDU3NjA0LCJpYXQiOjE2OTUxMTIwMDQsImp0aSI6IjIzN2U1MWIwMGNlMDQxN2FhMmE2YzBkOTExNjg2MGU2In0.gIOuyOHbSpcjI-tBEQYAMGDmFuj7ay3ttVOUywbqkLY"
}
}
# 精简版
精简版对比普通简版登录时,需要选择对应的业务单元、业务岗位信息。程序会对这些数据进行效验,如果不符合要求,则会提示错误信息。
# 预登陆(记录用户信息)
登录接口地址:http://ip:端口/api/security/token 请求类型为post
使用接口测试工具,以postman举例:
提示
端口、ip、/api(应用访问路径)需要根据实际配置修改,/security/token是登录接口固定地址。
- 接口入参:
参数 | 值 | 说明 |
---|---|---|
loginName | admin | 必要参数;登录名,默认管理员登录名admin |
password | 187b5b7a08255aad6a1b6d0ce635bf21 | 必要参数;密码,这个是值为111111加密后的值; |
grantType | password | 必要参数;登录类型,默认未password; |
- 接收参数说明:
参数名称 | 参数说明 | 备注 |
---|---|---|
code | 状态码 | 成功为200 |
msg | 提示信息 | 成功为success |
postChainId | 预登陆唯一标识 | 用来记录用户信息,二次登录时会效验两次登录用户信息是否一致 |
personId | 人员唯一标识 | 第二步获取岗位信息用到 |
code | 登录名 | 第二步获取岗位信息用到 |
- 接收参数事例如下:
{
"code": "200",
"msg": "操作成功",
"data": {
"postChainId": "94c0851770724823a233cd8b9cfce1c7",
"personId": "admin",
"code": "admin",
"name": "超级管理员"
},
"uri": null
}
# 获取业务岗位、业务单元信息
登录接口地址:http://ip:端口/api/org/hos-post/select-post-page?current=1&size=5&type=&personId=admin 请求类型为get
使用接口测试工具,以postman举例:
- 接口入参:
参数 | 值 | 说明 |
---|---|---|
current | 1 | 必要参数;分页参数 |
size | 999 | 必要参数;分页参数; |
type | id | 必要参数;账号类型,如果是应用自己的登录,则值为personId,如果是统一认证登录,则值为id; |
personId | admin | 必要参数;人员唯一标识,值为预登陆接口返回的personId字段的值; |
- 接收参数说明:
参数名称 | 参数说明 | 备注 |
---|---|---|
code | 状态码 | 成功为200 |
msg | 提示信息 | 成功为success |
postId | 业务岗位id | 登录接口调试主要获取的信息 |
buId | 业务业务单元id | |
buCode | 业务业务单元编码 | |
postCode | 业务岗位编码 | |
buName | 业务单元名称 | |
postName | 业务岗位名称 | |
name | 岗位单元名称 |
- 接收参数事例如下:
{
"code": "200",
"msg": "操作成功",
"data": {
"records": [
{
"id": "4fea916f7a774716a836fffa49fc312a",
"current": 0,
"size": 0,
"postId": "00bc3aad905ea71b066984d7e7542c24",
"buId": "17959de263bd0be4e4efd1dcc89539e7",
"buCode": "DTC03.A.A69.2-760",
"postCode": "DTC03.A.A69.2-760-DTC03-20-00004-001",
"postName": "HOS超级系统管理员",
"buName": "HOS系统部",
"name": "HOS系统部-HOS超级系统管理员"
}
],
"total": 0,
"size": 5,
"current": 1,
"orders": [],
"optimizeCountSql": true,
"searchCount": true,
"pages": 0
},
"success": true
}
# 登录(获取token)
登录接口地址:http://ip:端口/api/security/token 请求类型为post
使用接口测试工具,以postman举例:
提示
端口、ip、/api(应用访问路径)需要根据实际配置修改,/security/token是登录接口固定地址。
- 接口入参:
参数 | 值 | 说明 |
---|---|---|
loginName | admin | 必要参数;登录名,默认管理员登录名admin |
password | 187b5b7a08255aad6a1b6d0ce635bf21 | 必要参数;密码,这个是值为111111加密后的值; |
grantType | password | 必要参数;登录类型,默认未password; |
post | 必要参数;所选岗位信息,第二步获取到的岗位信息中的其中一条; | |
postChainId | 94c0851770724823a233cd8b9cfce1c7 | 必要参数;记录用户信息的唯一标识,第一步预登陆返回的数据 |
- 接收参数说明:
参数名称 | 参数说明 | 备注 |
---|---|---|
code | 状态码 | 成功为200 |
msg | 提示信息 | 成功为success |
hosUser | 用户信息 | |
accessToken | 访问令牌 | 登录接口调试主要获取的信息 |
refreshToken | 刷新令牌 | |
expiresIn | 过期时间 | 当前下发令牌过期时间 |
type | 登录类型 | form为表单,oauth为统一认证 |
- 接收参数事例如下:
{
"code": "200",
"msg": "操作成功",
"data": {
"expiresIn": 259199,
"hosUser": {
"accountCode": "admin",
"accountId": "42ba0988866e43e9a3086ef19ebe6806",
"accountName": "超级管理员",
"grantType": null,
"initLoginTime": null,
"phoneNumber": null,
"postFirstPage": null,
"postId": null,
"postOneVO": {
"id": "21358e18a8bc4aca9a10f9bb3e26cd18",
"current": 0,
"size": 0,
"postId": "00bc3aad905ea71b066984d7e7542c24",
"buId": "17959de263bd0be4e4efd1dcc89539e7",
"buCode": "DTC03.A.A69.2-760",
"postCode": "DTC03.A.A69.2-760-DTC03-20-00004-001",
"postName": "HOS超级系统管理员",
"buName": "HOS系统部",
"name": "HOS系统部-HOS超级系统管理员"
},
"postName": null,
"tenantId": "000000",
"password": "",
"userName": "超级管理员",
"activity": true,
"locked": false,
"unlockDate": 1731489301000,
"lastLoginDate": 1732000609000,
"lastUpdatePassword": 1664767346000,
"createTime": null,
"needRestPassword": false,
"loginDate": 1732000681418,
"globalUniqueID": "63006ef7c30d480e9aa676c3b5008f83",
"personId": "",
"startDate": null,
"endDate": null,
"authVersion": null
},
"accessToken": "zBhtzTsyaI6wFjEDsHb9eqPpE4OV9sw0PgXttL-sbgVjGyc-uYHK_G--tFNDJrfhCqRLAyJy03Ueg1Xm7Cul9wtlPCrBsUusdN0S3Pn6WsJRJW9X6khSDtH94SpWvKo3",
"type": "form"
},
"uri": null
}
# 专业版
专业版与精简版一样,登录时需要选择具体的岗位单元数据,不同点在于,专业版的岗位单元数据更加详细。
# 预登陆(记录用户信息)
登录接口地址:http://ip:端口/api/security/token 请求类型为post
使用接口测试工具,以postman举例:
提示
端口、ip、/api(应用访问路径)需要根据实际配置修改,/security/token是登录接口固定地址。
- 接口入参:
参数 | 值 | 说明 |
---|---|---|
loginName | admin | 必要参数;登录名,默认管理员登录名admin |
password | 187b5b7a08255aad6a1b6d0ce635bf21 | 必要参数;密码,这个是值为111111加密后的值; |
grantType | password | 必要参数;登录类型,默认未password; |
- 接收参数说明:
参数名称 | 参数说明 | 备注 |
---|---|---|
code | 状态码 | 成功为200 |
msg | 提示信息 | 成功为success |
postChainId | 预登陆唯一标识 | 用来记录用户信息,二次登录时会效验两次登录用户信息是否一致 |
personId | 人员唯一标识 | 第二步获取岗位信息用到 |
code | 登录名 | 第二步获取岗位信息用到 |
- 接收参数事例如下:
{
"code": "200",
"msg": "操作成功",
"data": {
"postChainId": "94c0851770724823a233cd8b9cfce1c7",
"personId": "admin",
"code": "admin",
"name": "超级管理员"
},
"uri": null
}
# 获取业务岗位、业务单元信息
登录接口地址:http://ip:端口/api/org/hos-post/select-post-page?current=1&size=5&type=&personId=admin 请求类型为get
使用接口测试工具,以postman举例:
- 接口入参:
参数 | 值 | 说明 |
---|---|---|
current | 1 | 必要参数;分页参数 |
size | 999 | 必要参数;分页参数; |
type | id | 必要参数;账号类型,如果是应用自己的登录,则值为personId,如果是统一认证登录,则值为id; |
personId | admin | 必要参数;人员唯一标识,值为预登陆接口返回的personId字段的值; |
- 接收参数说明:
参数名称 | 参数说明 | 备注 |
---|---|---|
code | 状态码 | 成功为200 |
msg | 提示信息 | 成功为success |
name | 岗位单元名称 | |
buNames | 所有岗位单元名称 | |
postNames | 所有岗位单元名称 | |
postRecords | 具体业务单元岗位数据 | |
postId | 业务岗位id | 登录接口调试主要获取的信息 |
buId | 业务业务单元id | |
buCode | 业务业务单元编码 | |
postCode | 业务岗位编码 | |
buName | 业务单元名称 | |
postName | 业务岗位名称 |
- 接收参数事例如下:
{
"code": "200",
"msg": "操作成功",
"data": {
"records": [
{
"id": "00bc3aad905ea71b066984d7e7542c24",
"code": "DTC03.A.A69.2-760-DTC03-20-00004-001",
"type": "unit",
"name": "超级系统管理员岗位单元",
"postNames": "iCIMS超级系统管理员",
"buNames": "iCIMS系统管理业务单元",
"postRecords": [
{
"id": "00bc3aad905ea71b066984d7e7542c24",
"name": "iCIMS超级系统管理员",
"postSourceId": "hos0001",
"postCode": "DTC03.A.A69.2-760-DTC03-20-00004-001",
"postName": "iCIMS超级系统管理员",
"buSourceId": "hos0001",
"buCode": "DTC03.A.A69.2-760",
"buName": "iCIMS系统管理业务单元",
"children": [
{
"id": "hos0001",
"name": "iCIMS管理员流程岗",
"type": "process"
}
]
}
]
}
],
"total": 1,
"size": 9999,
"current": 1,
"orders": [],
"optimizeCountSql": true,
"searchCount": true,
"pages": 1
},
"success": true
}
# 登录(获取token)
登录接口地址:http://ip:端口/api/security/token 请求类型为post
使用接口测试工具,以postman举例:
提示
端口、ip、/api(应用访问路径)需要根据实际配置修改,/security/token是登录接口固定地址。
- 接口入参:
参数 | 值 | 说明 |
---|---|---|
loginName | admin | 必要参数;登录名,默认管理员登录名admin |
password | 187b5b7a08255aad6a1b6d0ce635bf21 | 必要参数;密码,这个是值为111111加密后的值; |
grantType | password | 必要参数;登录类型,默认未password; |
post | 必要参数;所选岗位信息,第二步获取到的岗位信息中的其中一条; | |
postChainId | 94c0851770724823a233cd8b9cfce1c7 | 必要参数;记录用户信息的唯一标识,第一步预登陆返回的数据 |
- 接收参数说明:
参数名称 | 参数说明 | 备注 |
---|---|---|
code | 状态码 | 成功为200 |
msg | 提示信息 | 成功为success |
hosUser | 用户信息 | |
accessToken | 访问令牌 | 登录接口调试主要获取的信息 |
refreshToken | 刷新令牌 | |
expiresIn | 过期时间 | 当前下发令牌过期时间 |
type | 登录类型 | form为表单,oauth为统一认证 |
- 接收参数事例如下:
{
"code": "200",
"msg": "操作成功",
"data": {
"expiresIn": 259199,
"hosUser": {
"accountCode": "admin",
"accountId": "42ba0988866e43e9a3086ef19ebe6806",
"accountName": "超级管理员",
"grantType": null,
"initLoginTime": null,
"phoneNumber": null,
"postFirstPage": null,
"postId": null,
"postOneVO": {
"id": "00bc3aad905ea71b066984d7e7542c24",
"code": "DTC03.A.A69.2-760-DTC03-20-00004-001",
"type": "unit",
"name": "超级系统管理员岗位单元",
"postNames": "iCIMS超级系统管理员",
"buNames": "iCIMS系统管理业务单元",
"postRecords": [
{
"id": "00bc3aad905ea71b066984d7e7542c24",
"name": "iCIMS超级系统管理员",
"postSourceId": "hos0001",
"postCode": "DTC03.A.A69.2-760-DTC03-20-00004-001",
"postName": "iCIMS超级系统管理员",
"buSourceId": "hos0001",
"buCode": "DTC03.A.A69.2-760",
"buName": "iCIMS系统管理业务单元",
"children": [
{
"id": "hos0001",
"name": "iCIMS管理员流程岗",
"type": "process"
}
]
}
]
},
"postName": null,
"tenantId": "000000",
"password": "",
"userName": "超级管理员",
"activity": true,
"locked": false,
"unlockDate": null,
"lastLoginDate": 1732002621000,
"lastUpdatePassword": 1731028905000,
"createTime": null,
"needRestPassword": false,
"loginDate": 1732002625922,
"globalUniqueID": "73ef7af74aff40278a03143be544b814",
"personId": "",
"startDate": null,
"endDate": null,
"orgId": null
},
"accessToken": "VxuZgEN6yEVjg6TAzY8aWVT-MO9vL0YQXw9m_gGfSYwXoI31A8UiY8OenoUqQEmOdHuMs5UHWXdtGfcBHigUdWcKW539xn2dIEP_eBKWlhDtUUuQ_-54oXtGcNUqejRD",
"type": "form"
},
"uri": null
}
# 携带access-token调用后端接口
- 在登录接口请求后,会返回token,其他接口需要使用token进行模拟登录。token参数必须放在请求头header中, 参数名为:access-token 参数值为:登录接口返回的accessToken值
# 携带access-token接口调试
使用接口测试工具,以postman举例:
# 刷新Token
当系统开启了刷新Token(yml文件配置hos-security.login.token.enable-refresh-token=true)而且access-token过期时,可以使用刷新token请求生成新的access-token,达到登录续期的功能。
接口地址:http://ip:端口/api/security/token 请求类型为post
使用接口测试工具,以postman举例:
提示
端口、ip、/api(应用访问路径)需要根据实际配置修改,/security/token是接口固定地址。接口入参:
参数 | 值 | 说明 |
---|---|---|
refreshToken | 登录时返回的refreshToken值 | 必要参数;登录时返回的refreshToken值 |
- 接收参数说明:
参数名称 | 参数说明 | 备注 |
---|---|---|
code | 状态码 | 成功为200 |
msg | 提示信息 | 成功为success |
hosUser | 用户信息 | 登录用户信息 |
accessToken | 访问令牌 | 登录接口调试主要获取的信息 |
refreshToken | 刷新令牌 | |
expiresIn | 过期时间 | 当前下发令牌过期时间 |
type | 登录类型 | form为表单,oauth为统一认证 |
- 接收参数事例如下:
{
"code": "200",
"msg": "操作成功",
"data": {
"expiresIn": 1799,
"hosUser": {
"accountCode": "admin",
"accountId": "3e2bdf84f7b4f94be2d8a72135f6c925",
"accountName": "超级管理员",
"grantType": null,
"initLoginTime": null,
"phoneNumber": "",
"postFirstPage": null,
"postId": null,
"postOneVO": {
"id": "7f42101c988c44168ada2e5217ccf4fb",
"current": 0,
"size": 0,
"postId": "00bc3aad905ea71b066984d7e7542c24",
"buId": "17959de263bd0be4e4efd1dcc89539e7",
"buCode": "DTC03.A.A69.2-760",
"postCode": "DTC03.A.A69.2-760-DTC03-20-00004-001",
"postName": "iCIMS超级系统管理员",
"buName": "iCIMS系统管理业务单元",
"name": "iCIMS系统管理业务单元-iCIMS超级系统管理员"
},
"postName": null,
"tenantId": "000000",
"password": "",
"userName": "超级管理员",
"activity": true,
"locked": false,
"unlockDate": null,
"lastLoginDate": 1742178437633,
"lastUpdatePassword": null,
"createTime": null,
"needRestPassword": false,
"loginDate": 1742178841394,
"globalUniqueID": "a0c3392fe65643a28d642128707d1372",
"personId": "",
"startDate": null,
"endDate": null,
"authVersion": null,
"roleId": null,
"deptId": null,
"orgId": null,
"caInfo": null
},
"accessToken": "cJ3TwAbWcQg8AHj4t6X5KwvBTQp5WMGshUmj7IpkPDAUetQDpF9a7ilWdM5l9k8yr0iqIYeplRCd6OfEWKWrjNS-Pm0F4kWeGrLRHm4uv06ruvpqLzJdovNmqiirA326",
"type": "form",
"refreshToken": "4iUiiG9izO9wNuHV2jHUVbR-pNmMrk2Spf5XzA6upIpy8kPtpHisrwh4WYgm81cfT-OSbWWuqeH0V2fMZWObu99vQy6wAEsZd3am0vD5auQiGNeY_S1JEAxnmAWbpnSr"
},
"uri": null,
"success": true
}