# 模拟登录

本章节主要用于后端开发人员在开发接口中调试接口场景中使用。

因业务场景需要,本平台中的接口默认需要先登录,然后在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;

提示

后端验证所需的密码是需要加密的,如密码修改过或初始密码不为111111,请使用加密工具加密密码,参考 5-crypt-加密章节。

  • 接收参数说明:
参数名称 参数说明 备注
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;

提示

后端验证所需的密码是需要加密的,如密码修改过或初始密码不为111111,请使用加密工具加密密码,参考 5-crypt-加密章节。

  • 接收参数说明:
参数名称 参数说明 备注
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 必要参数;记录用户信息的唯一标识,第一步预登陆返回的数据

提示

后端验证所需的密码是需要加密的,如密码修改过或初始密码不为111111,请使用加密工具加密密码,参考 5-crypt-加密章节。

  • 接收参数说明:
参数名称 参数说明 备注
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;

提示

后端验证所需的密码是需要加密的,如密码修改过或初始密码不为111111,请使用加密工具加密密码,参考 5-crypt-加密章节。

  • 接收参数说明:
参数名称 参数说明 备注
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 必要参数;记录用户信息的唯一标识,第一步预登陆返回的数据

提示

后端验证所需的密码是需要加密的,如密码修改过或初始密码不为111111,请使用加密工具加密密码,参考 5-crypt-加密章节。

  • 接收参数说明:
参数名称 参数说明 备注
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
}