API服务
基础框架API服务主要用于对第三方系统提供服务,服务包含restful 接口服务、页面服务。在服务的调用都需要先获取授权的token,这里提供几种方式来获取系统jwt-token。
1、业务系统注册
在第三方系统需要获取token,需要先在系统管理中的业务系统注册功能中先注册,也就是关联一个系统账号,注册启用后就可以生成应用ID、密钥两个信息,通过这两个信息来获取token
- appid:应用ID
- secret:密匙

2、通过API获取jwt-token(方式一)
2.1、获取调用token
- 请求方式:GET
- 接口地址:
/xxx-server/v1/token(<= waf-parent:2.0) - 接口地址:
/xxx-server/v2/waf/token(> waf-parent:2.0)
| 参数 | 参数名称 | 数据类型 | 是否必填 | 描述 | 示例值 |
|---|---|---|---|---|---|
| appid | 应用ID | String | 是 | 分配给业务系统的ID | BUhLQ6+l07HTg |
| secret | 密匙 | String | 是 | 分配给业务系统的密匙 |
- 应答格式:JSON
{
"code": 200,
"message": "调用成功!",
"data":{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1OTA0MDA4MjgsImNsaW1OYW1lIjoiYWRtaW4ifQ.Y6ty3TUmdR74vb_Qius82ldxDNRLel8VxL42V4-foH4"
}
}
- application.yml 中配置
waf:
server:
# > waf-parent:2.0 系统框架api升级为/v2/
exclusions: ${WAF_SERVER_EXCLUSIONS:/v2/waf/token}
# <= waf-parent:2.0 版本api接口为/v1/
# exclusions: ${WAF_SERVER_EXCLUSIONS:/v1/waf/token}
2.2、获取用户信息
- 请求方式:GET
- 请求参数:
| 参数名 | 参数类型 | 参数值 |
|---|---|---|
| Waf-Access-Token | Header | 通过2.1获取的token值 |
- 接口地址:/v1/user/info (
<= waf-parent:2.0) - 接口地址:/v2/user/info (
> waf-parent:2.0) - 应答格式:JSON
返回的json数据中,包含用户基本信息,角色,权限,个性化设置等
3、通过header认证(方式二)
通过将业务系统注册生成的appid、secret的值设置到header头中,直接调用api接口,这样可以省去先获取token,再调用接口,推荐该方式。如获取用户信息接口。
- 请求方式:GET
- 请求参数:
| 参数名 | 参数类型 | 参数值 |
|---|---|---|
| Waf-App-Id | Header | 业务系统注册生成的appid |
| Waf-App-Secret | Header | 业务系统注册生成的secret |
- 接口地址:/v2/user/info (
<= waf-parent:2.0) - 应答格式:JSON
4、页面集成
页面集成一般得基于单点登录的前提下,这里只要对单点进来的用户授权后就可以访问,如果是属于第三方系统以统一的账号进行集成,这里也需要先获取jwt-token,然后再将token带入集成的URL地址中。
- 菜单配置
在系统管理配置菜单时,可以单独建立一层根节点,组件设置为layouts/BlankLayout,这样添加进来的菜单就不会带有系统中的框架,一般集成到第三方系统,只需要功能,不需要整个系统构架。

4.1、单点方式集成
单点登录的方式,只需要授权后,直接在第三方系统通过iframe进行集成即可。

4.2、自定义方式集成
自定义方式则不需要通过单点登录,在访问之前调用接口获取token后,以URL的方式带入,即可访问具体功能。
# 自定义集成,在URL上添加token参数
http://d.wiseda.cn/dmm/dam-irs-web/domMgtIframe?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NzA0MDMyOTMsImNsaW1OYW1lIjoiaWdGclRzY2VrQkFuNVZSMjhDcG0vdz09In0.fzbP6xxlideMGweH-73dNuh1w3LyBsPzsxSto8knepU
通过token参数进行界面集成

