LicOS平台客户端SDK认证接入指南(springboot版)
联诚科技集团LicOS平台客户端SDK认证接入指南(springboot版)
使用前提
- 使用LicOS java SDK,您需要登陆LicOS控制台-应用管理,查询应用的App Key、App Secret和应用回调地址
- LicOS SDK 支持JAVA JDK1.8及其以上版本
LicOS客户端认证流程
前后端分离
- 调用SDK
LicosOauth2ClientService#getAuthorizeUrl
获取登陆认证地址; - 调用SDK
LicosOauth2ClientService#getTokenByAuthorizationCode
获取id_token、access_token和refresh_token;注意:code使用一次就失效; - 调用SDK
LicosOauth2ClientService#getUserInfo
获取到用户信息; - 调用SDK
LicosOauth2ClientService#authorize
获取id_token、access_token、refresh_token和用户信息,相当于第二步和第三步;注意:code使用一次就失效。 - id_token、access_token、refresh_token有过期时间,可以通过
LicosOauth2ClientService.getTokenByRefreshToken
刷新token
服务端渲染
SDK获取和安装
推荐您通过 Maven 安装依赖的方式使用 SDK。
首先您需要在您的操作系统中下载并 安装 Maven ,配置私服地址,安装完成后您只需在 Maven 项目的 pom.xml
文件加入相应的依赖项即可。
pom.xml配置
<!-- 请使用最新版SDK -->
<dependency>
<groupId>com.kmlc.licos</groupId>
<artifactId>licos-iam-oauth2-client-starter</artifactId>
<version>0.0.10-RELEASE</version>
</dependency>
springboot配置文件:
licos:
oauth2:
client:
registration:
# 第三方应用的标识id
client-id: xxxx
# 第三方应用的密钥
client-secret: xxxx
# 授权成功后的重定向地址,授权成功后携带code参数,pc,mobile可以自定义
redirect-uris:
pc: http://xxx
mobile: http://xxx
# 默认redis
cache-type: local
provider:
open-uri: xxx
auth-uri: xxx
配置文件说明:
配置 | 说明 |
---|---|
licos.oauth2.client.provider.auth-uri | 认证地址,默认:http://auth.licos.com.cn/oauth2 |
licos.oauth2.client.provider.open-uri | LicOS开放能力接口地址 默认:http://openapi.licos.com.cn/api |
licos.oauth2.client.registration.client-id | 必选。第三方应用的标识id |
licos.oauth2.client.registration.client-secret | 必选。第三方应用的密钥 |
licos.oauth2.client.registration.redirect-uris | 必选。授权成功后的重定向地址。授权成功后携带code参数 |
licos.oauth2.client.registration.cache-type | 必选。缓存accessToken的策略,redis或local,默认redis |
licos.oauth2.client.registration.cache-prefix | 可选。redis缓存的前缀,默认licos:client-credentials: |
示例代码
@Controller
public class LoginController {
@Autowired
private LicosOauth2ClientService licosOauth2ClientService;
/**
* 引导重定向到授权登陆页面
*
* @return
*/
@GetMapping("/lcLogin")
public String lcLogin() {
String url = licosOauth2ClientService.getAuthorizeUrl("pc",null);
return "redirect:" + url;
}
/**
* 获取token和用户信息
*
* @param code
* @return
*/
@GetMapping("/authorize")
@ResponseBody
public Result authorize(String code) {
LicosAuthorizeDTO licosAuthorizeDTO = licosOauth2ClientService.authorize(code);
// 获取token
LicosTokenDTO licosTokenDTO = licosAuthorizeDTO.getLicosTokenDTO();
// 获取用户信息
LicosUserInfoDTO userInfo = licosAuthorizeDTO.getUserInfo();
// TODO: 业务逻辑
return null;
}
}
API接口
LicosOauth2ClientService:LicOS 认证服务
方法 | 参数 | 说明 | 版本 |
---|---|---|---|
String getAuthorizeUrl(String key, String state); | key:配置文件redirect-uris的key state:自定义参数 |
获取LicOS认证地址 | >=0.0.9-RELEASE |
LicosTokenDTO getTokenByAuthorizationCode(String code); | code: 回调地址携带的code | 获取idToken、accessToken和refreshToken | >=0.0.1-RELEASE |
LicosUserInfoDTO getUserInfo(String accessToken,String tokenType); | accessToken:上一个接口返回的accessToken; tokenType:上一个接口返回的tokenType |
获取用户信息 | >=0.0.1-RELEASE |
LicosAuthorizeDTO authorize(String code); | code:回调地址携带的code | 获取idToken、accessToken和refreshToken和用户信息 | >=0.0.1-RELEASE |
LicosTokenDTO getTokenByClientCredentials(); | 无 | 获取客户端凭证accessToken | >=0.0.1-RELEASE |
LicosTokenDTO getTokenByRefreshToken(String refreshToken); | refreshToken:刷新token | 刷新idToken和accessToken | >=0.0.1-RELEASE |
getAuthorizeUrl
-
说明:获取LicOS认证地址
-
参数:
参数名称 参数说明 是否必须 参数类型 key 配置文件redirect-uris的key 是 String state 自定义参数 否 String -
响应参数:
参数名称 参数说明 类型 LicOS认证地址 String
getTokenByAuthorizationCode
-
说明:获取idToken、accessToken和refreshToken
-
参数:
参数名称 参数说明 是否必须 参数类型 code 回调地址携带的code 是 String -
响应参数:
参数名称 参数说明 类型 accessToken accessToken String refreshToken 刷新token String scope scope String idToken idToken String tokenType token类型 String expiresIn 过期时间,单位秒 Integer -
示例:
{
"access_token": "", // access_token
"refresh_token": "", //refresh_token
"scope": "", // scope
"id_token": "", // id_token
"token_type": "", // token类型
"expires_in": 0 // 过期时间,单位秒
}
getUserInfo
-
说明:获取用户信息
-
参数:
参数名称 参数说明 是否必须 参数类型 accessToken accessToken 是 String tokenType token类型 是 String -
响应参数:
参数名称 参数说明 类型 tenantId 租户id String azp idToken颁发者 String nonce 关联客户端和idToken的会话的字符串 String sub 终端用户在发行方的身份标识 String zoneinfo 用户的时区信息 String birthdate 生日 String gender 性别 String iss 签发人 String preferredUsername 客户端期望的终端用户名称 String locale 地方信息返回en-US 或 fr-CA等信息 String updatedAt 用户信息最近更新时间 String nickname 昵称 String exp 过期时间 Integer iat 颁发时间 Integer email 邮件地址 String powerList 权限 List website 终端用户的网站主业或博客url String tenantName 租户名称 String emailVerified 是否是验证的最终用户 String address 用户地址 String profile 终端用户发资料页url String phoneNumberVerified 执行验证的终端用户手机号 Boolean givenName 名字 String middleName 中间名字 String picture 头像 String aud 自定义返回值,格式不定 Object accountId 账号id String name 用户全名 String phoneNumber 终端用户的验证手机号 String familyName 姓氏 String appAdmin 是否是管理员 Boolean -
示例:
{
"tenant_id": "", // 租户id
"azp": "", // idToken颁发者
"nonce": "", // 关联客户端和idToken的会话的字符串
"sub": "", // 终端用户在发行方的身份标识
"zoneinfo": "", // 用户的时区信息
"birthdate": "", // 生日
"gender": "", // 性别
"iss": "", // 签发人
"preferred_username": "", // 客户端期望的终端用户名称
"locale": "", // 地方信息返回en-US 或 fr-CA等信息
"updated_at": "", // 用户信息最近更新时间
"nickname": "", // 昵称
"exp": 0, // 过期时间
"iat": 0, // 颁发时间
"email": "", // 邮件地址
"powerList": // 权限
[
{}
],
"website": "", //终端用户的网站主业或博客url
"tenant_name": "", // 租户名称
"email_verified": "", // 是否是验证的最终用户
"address": "", // 用户地址
"profile": "", // 终端用户发资料页url
"phone_number_verified": false, // 执行验证的终端用户手机号
"given_name": "", // 名字
"middle_name": "", // 中间名字
"picture": "", // 头像
"aud": {}, // 自定义返回值,格式不定
"account_id": "", // 账号id
"name": "", // 用户全名
"phone_number": "", // 终端用户的验证手机号
"family_name": "", //姓氏
"app_admin": false // 是否是管理员
}
authorize
-
说明:认证,相当于getTokenByAuthorizationCode和getUserInfo
-
参数:回调地址携带的code
参数名称 参数说明 是否必须 参数类型 code 回调地址携带的code 是 String -
响应参数:返回getTokenByAuthorizationCode和getUserInfo的结果
参数名称 参数说明 类型 licosTokenDTO token信息 Object userInfo 用户信息 Object -
示例:
{
"licosTokenDTO": // getTokenByAuthorizationCode的返回值
{
"access_token": "", // access_token
"refresh_token": "", //refresh_token
"scope": "", // scope
"id_token": "", // id_token
"token_type": "", // token类型
"expires_in": 0 // 过期时间,单位秒
},
"userInfo": // getUserInfo的返回值
{
"tenant_id": "", // 租户id
"azp": "", // idToken颁发者
"nonce": "", // 关联客户端和idToken的会话的字符串
"sub": "", // 终端用户在发行方的身份标识
"zoneinfo": "", // 用户的时区信息
"birthdate": "", // 生日
"gender": "", // 性别
"iss": "", // 签发人
"preferred_username": "", // 客户端期望的终端用户名称
"locale": "", // 地方信息返回en-US 或 fr-CA等信息
"updated_at": "", // 用户信息最近更新时间
"nickname": "", // 昵称
"exp": 0, // 过期时间
"iat": 0, // 颁发时间
"email": "", // 邮件地址
"powerList": // 权限
[
{}
],
"website": "", //终端用户的网站主业或博客url
"tenant_name": "", // 租户名称
"email_verified": "", // 是否是验证的最终用户
"address": "", // 用户地址
"profile": "", // 终端用户发资料页url
"phone_number_verified": false, // 执行验证的终端用户手机号
"given_name": "", // 名字
"middle_name": "", // 中间名字
"picture": "", // 头像
"aud": {}, // 自定义返回值,格式不定
"account_id": "", // 账号id
"name": "", // 用户全名
"phone_number": "", // 终端用户的验证手机号
"family_name": "", //姓氏
"app_admin": false // 是否是管理员
}
}
getTokenByClientCredentials
-
说明:获取客户端凭证
-
参数:无
-
响应参数:
参数名称 参数说明 类型 accessToken accessToken String refreshToken 刷新token String scope scope String idToken idToken String tokenType token类型 String expiresIn 过期时间,单位秒 Integer -
示例:
{
"access_token": "", // access_token
"refresh_token": "", // 无返回
"scope": "", // scope
"id_token": "", // 无返回
"token_type": "", // token类型
"expires_in": 0 // 过期时间,单位秒
}
getTokenByRefreshToken
-
说明:刷新token
-
参数:
参数名称 参数说明 是否必须 参数类型 refreshToken 刷新token 是 String -
响应参数:
参数名称 参数说明 类型 accessToken accessToken String refreshToken 刷新token String scope scope String idToken idToken String tokenType token类型 String expiresIn 过期时间,单位秒 Integer -
示例:
{
"access_token": "", // access_token
"refresh_token": "", // refresh_token
"scope": "", // scope
"id_token": "", // id_token
"token_type": "", // token类型
"expires_in": 0 // 过期时间,单位秒
}
LicosOpenService:开放能力服务
公共参数说明:
idToken:认证服务返回的idToken
方法 | 参数 | 说明 | 版本 |
---|---|---|---|
LicosOpenUserInfoDTO getUserInfoByAccountId(String accountId) | accountId | 获取用户信息 | >=0.0.5-RELEASE |
List |
idToken | 获取租户信息 | >=0.0.1-RELEASE |
List |
tenantId | 获取组织信息 | >=0.0.5-RELEASE |
List |
获取组织类型 | >=0.0.5-RELEASE | |
LicosPage |
pageIndex:开始页 pageSize:分页大小 type:组织类型 tenantId:租户id |
查询组织信息 | >=0.0.5-RELEASE |
void addOrg(LicosOrgAddDTO licosOrgAddDTO); | licosOrgAddDTO:组织信息 |
添加组织 | >=0.0.5-RELEASE |
void removeOrg(String orgId); | orgId:组织id | 删除组织 | >=0.0.5-RELEASE |
List |
orgId:组织id | 获取组织所有角色 | >=0.0.5-RELEASE |
void addRoleToOrg(LicosRoleAddDTO licosRoleAddDTO, String idToken); | licosRoleAddDTO:角色信息 | 新增角色 | >=0.0.1-RELEASE |
void removeRole(String roleId, String idToken); | roleId:角色id | 删除角色 | >=0.0.1-RELEASE |
List |
accountId:LicOS账号id | 获取账号角色 | >=0.0.5-RELEASE |
LicosPage |
pageIndex:开始页 pageSize:分页大小 orgId:组织id tenantId:租户id keywords:查询关键字 |
获取用户列表 | >=0.0.5-RELEASE |
LicosOrgUserDTO getOrgAndUser(String tenantId, Date updateTime, String idToken); | tenantId:租户id updateTime:更新时间 |
获取组织和用户 | >=0.0.1-RELEASE |
LicosOrgUserDTO getOrgAndUserByTenantId(String tenantId) | tenantId:租户id | 获取组织和用户 | >=0.0.4-RELEASE |
List |
tenantId:租户id | 获取管理员 | >=0.0.5-RELEASE |
List |
tenantId:租户id | 获取代理商应用组列表 | >=0.0.6-RELEASE |
List |
groupId:组id | 获取代理商应用组下的应用 | >=0.0.6-RELEASE |
List |
tenantId:租户id type:租户组类型COMPANY=公司;DEPART=组织 |
获取租户的组列表 | >=0.0.7-RELEASE |
List<LicosTenantGroupDTO> getTenantGroupByGroupId(String groupId,String type); | groupId:组id type:租户组类型COMPANY=公司;DEPART=组织 |
获取租户组下的租户信息 | >=0.0.7-RELEASE |
List |
tenantId:租户id type:租户组类型COMPANY=公司;DEPART=组织 |
获取租户所在组及其组下的租户信息 | >=0.0.7-RELEASE |
void msgEventConfirm(String appId, String tenantId); | appId:应用id tenantId:租户id |
事件消息确认 | >=0.0.13-RELEASE |
Boolean checkGroupAdminByTenantId(String tenantId); | tenantId:租户id | 检查租户是否是租户组所有者 | >=0.0.8-RELEASE |
LicosTenantDetailDTO getTenantInfoByTenantId(String tenantId); | tenantId:租户id | 根据租户id获取租户信息 | >=0.0.9-RELEASE |
LicosSendSubscribeDTO msgSendMessage(LicosMsgSendDTO licosMsgSendDTO); | LicosMsgSendDTO:发送消息参数 | 应用发送订阅消息 | >=0.0.12-RELEASE |
void msgDealMessage(List |
Ids:消息id | 处理待办消息 | >=0.0.10-RELEASE |
getUserInfoByAccountId
-
说明:获取用户信息
-
参数:
参数名称 参数说明 是否必须 参数类型 accountId 用户账号 是 String -
响应参数:
参数名称 参数说明 类型 id 账号id String accountName 账号名称 String alias 别名 String main 是否主账号 Boolean tenantId 租户id String tenantName 租户名称 String userAvatar 用户头像 String email 邮箱 String gender 性别(0:男1:女) String phone 手机号 String realname 真实名称 String certificateStatus 认证状态(1 通过 0进行中 2认证失败) Object createTime 创建时间 String destroying 是否注销 Boolean -
示例:
{
"id": "", // 账号id
"accountName": "", // 账号名称
"alias": "", // 别名
"main": false,// 是否主账号
"tenantId": "", // 租户id
"tenantName": "", // 租户名称
"userAvatar": "", // 用户头像
"email": "", // 邮箱
"gender": "", // 性别(0:男1:女)
"phone": "", // 手机号
"realname": "", // 真实名称
"certificateStatus": {}, // 认证状态(1 通过 0进行中 2认证失败)
"createTime": "", // 创建时间
"destroying": false // 是否注销
}
getTenantInfo
-
说明:获取租户信息
-
参数:
参数名称 参数说明 是否必须 参数类型 idToken idToken 是 String -
响应参数:
参数名称 参数说明 类型 main 是否主账号 Boolean id 租户id String name 租户名称 String industryCategoryId 行业类目id String industryCategoryName 行业类目名 String roleNames 角色名集合 List orgNames 组织名集合 List joinDate 加入时间 String logo logo String accountId 账号 String -
示例:
[
{
"main": false, // 是否主账号
"id": "", // 租户id
"name": "", // 租户名称
"industryCategoryId": "", // 行业类目id
"industryCategoryName": "", // 行业类目名
"roleNames": // 角色名集合
[
""
],
"orgNames": // 组织名集合
[
""
],
"joinDate": "", // 加入时间
"logo": "", // logo
"accountId": "" // 账号
}
]
getOrgTreeList
-
说明:获取组织
-
参数:
参数名称 参数说明 是否必须 参数类型 tenantId 租户id 是 String -
响应参数:
参数名称 参数说明 类型 id 组织id String name 名称 String logo logo String pid 上级id String childs 下级 List -
示例:
[
{
"id": "", // 组织id
"name": "", // 名称
"logo": "", // logo
"childs": [] // 下级
"pid":"" // 上级id
}
]
getOrgTypeEnum
-
说明:获取组织类型
-
参数:无
-
响应参数:
参数名称 参数说明 类型 组织类型 List -
示例:
["",""]
getOrgByType
-
说明:获取组织信息
-
参数:
参数名称 参数说明 是否必须 参数类型 pageIndex 开始页 是 Integer pageSize 分页大小 是 Integer tenantId 租户id 是 String type 组织类型 是 组织类型 -
响应参数:
参数名称 参数说明 类型 id 组织id String name 组织名 String -
示例:
[
{
"id":"", // 组织id
"name":"" // 组织名
}
]
addOrg
-
说明:添加组织
-
参数:
参数名称 参数说明 是否必须 参数类型 name 组织名称 是 String parentOrgId 上级组织id 否 String description 描述 否 String tenantId 租户id 是 String -
响应参数:无
removeOrg
-
说明:删除组织
-
参数:
参数名称 参数说明 是否必须 参数类型 orgId 组织id 是 String -
响应参数:无
getRoleList
-
说明:获取组织所有角色
-
参数:
参数名称 参数说明 是否必须 参数类型 orgId 组织id 是 String -
响应参数:
参数名称 参数说明 类型 id 角色id String name 角色名 String -
示例:
[
{
"id":"", // 角色id
"name":"" // 角色名
}
]
addRoleToOrg
-
说明:新增角色
-
参数:
参数名称 参数说明 是否必须 参数类型 orgId 组织id 是 String description 角色描述 否 String name 角色名称 是 String idToken idToken 是 String -
响应参数:无
removeRole
-
说明:删除角色
-
参数:
参数名称 参数说明 是否必须 参数类型 roleId 角色id 是 String idToken idToken 是 String -
响应参数:无
getRoleByAccountId
-
说明:删除角色
-
参数:
参数名称 参数说明 是否必须 参数类型 accountId 账号id 是 String -
响应参数:无
pageUserInfoList
-
说明:获取用户列表
-
参数:
参数名称 参数说明 是否必须 参数类型 pageIndex 开始页 是 Integer pageSize 分页大小 是 Integer orgId 组织id 否 String tenantId 租户id 是 String keywords 查询关键字 否 String -
响应参数:
参数名称 参数说明 类型 pageIndex 开始页 Integer pageSize 分页大小 Integer total 总记录数 Integer content 内容 List content参数名称 参数说明 类型 id 用户id String email 邮箱 String phone 电话 String nicknames 昵称 Stting userStatus 用户状态 String roleName 角色名 String roleId 角色id String orgName 组织名 String orgId 组织id String accountId 账号id String gender 性别 String createTime 创建时间 String -
示例:
{
"pageIndex": 0,
"pageSize": 0,
"total": 0,
"content": [
{
"id": "", // id
"email": "", // 邮箱
"phone": "", // 电话
"nicknames": "", // 名称
"userStatus": "", // 用户状态
"roleName": "", // 角色名
"roleId": "", // 角色id
"orgName": "", // 组织名
"orgId": "", // 组织id
"accountId": "", // 账号id
"gender": "", // 性别
"createTime": "" // 创建时间
}
]
}
getOrgAndUser
-
说明:获取组织和用户
-
参数:
参数名称 参数说明 是否必须 参数类型 tenantId 租户id 是 String updateTime 更新时间 否 Date -
响应参数:
参数名称 参数说明 类型 orgs 组织 List accounts 用户 List orgs参数名称 参数说明 类型 id 组织id String name 组织名称 String pid 父id String createdDate 创建时间 String lastModifiedDate 最后修改日期 String childs 子节点 List accounts参数名称 参数说明 类型 id id String alias 别名 String accountName 账户名称 String email 邮箱 String phone 手机 String realname 真实名称 String gender 性别 String createdDate 创建日期 String lastModifiedDate 最后修改日期 String orgId 组织id String userStatus 用户状态:正常NORMAL,禁用DISABLEL,冻结FREEZE,删除DELETE,未激活INACTIVATED,未加入NOT_JOIN,已拒绝REJECTED,注销LOGOUT String -
示例:
{
"orgs":[
{
"id":"", // 组织id
"name":"", // 组织名称
"pid":"", // 父id
"createdDate":"", // 创建时间
"lastModifiedDate":"", // 最后修改日期
"childs":[] // 子节点
}
],
"accounts":[
{
"id":"", // id
"alias":"", // 别名
"accountName":"", // 账户名称
"email":"", // 邮箱
"phone":"", // 手机
"realname":"", // 真实名称
"gender":"", // 性别
"createdDate":"", // 创建日期
"lastModifiedDate":"", // 最后修改日期
"orgId":"", // 组织id
"userStatus":"", // 用户状态:正常NORMAL,禁用DISABLEL,冻结FREEZE,删除DELETE,未激活INACTIVATED,未加入NOT_JOIN,已拒绝REJECTED,注销LOGOUT
"appAdmin":false
}
]
}
getOrgAndUserByTenantId
-
说明:获取组织和用户
-
参数:
参数名称 参数说明 是否必须 参数类型 tenantId 租户id 是 String -
响应参数:
参数名称 参数说明 类型 orgs 组织 List accounts 用户 List orgs参数名称 参数说明 类型 id 组织id String name 组织名称 String pid 父id String createdDate 创建时间 String lastModifiedDate 最后修改日期 String childs 子节点 List accounts参数名称 参数说明 类型 id id String alias 别名 String accountName 账户名称 String email 邮箱 String phone 手机 String realname 真实名称 String gender 性别 String createdDate 创建日期 String lastModifiedDate 最后修改日期 String orgId 组织id String userStatus 用户状态:正常NORMAL,禁用DISABLEL,冻结FREEZE,删除DELETE,未激活INACTIVATED,未加入NOT_JOIN,已拒绝REJECTED,注销LOGOUT String appAdmin 是否是管理员 Boolean -
示例:
{
"orgs":[
{
"id":"", // 组织id
"name":"", // 组织名称
"pid":"", // 父id
"createdDate":"", // 创建时间
"lastModifiedDate":"", // 最后修改日期
"childs":[] // 子节点
}
],
"accounts":[
{
"id":"", // id
"alias":"", // 别名
"accountName":"", // 账户名称
"email":"", // 邮箱
"phone":"", // 手机
"realname":"", // 真实名称
"gender":"", // 性别
"createdDate":"", // 创建日期
"lastModifiedDate":"", // 最后修改日期
"orgId":"", // 组织id
"userStatus":"", // 用户状态:正常NORMAL,禁用DISABLEL,冻结FREEZE,删除DELETE,未激活INACTIVATED,未加入NOT_JOIN,已拒绝REJECTED,注销LOGOUT
"appAdmin":false
}
]
}
getOrgAndUserByIdToken
-
说明:获取组织和用户
-
参数:
参数名称 参数说明 是否必须 参数类型 idToken idToken 是 String -
响应参数:
参数名称 参数说明 类型 orgs 组织 List accounts 用户 List orgs参数名称 参数说明 类型 id 组织id String name 组织名称 String pid 父id String createdDate 创建时间 String lastModifiedDate 最后修改日期 String childs 子节点 List accounts参数名称 参数说明 类型 id id String alias 别名 String accountName 账户名称 String email 邮箱 String phone 手机 String realname 真实名称 String gender 性别 String createdDate 创建日期 String lastModifiedDate 最后修改日期 String orgId 组织id String userStatus 用户状态:正常NORMAL,禁用DISABLEL,冻结FREEZE,删除DELETE,未激活INACTIVATED,未加入NOT_JOIN,已拒绝REJECTED,注销LOGOUT String appAdmin 是否管理员 Boolean -
示例:
{
"orgs":[
{
"id":"", // 组织id
"name":"", // 组织名称
"pid":"", // 父id
"createdDate":"", // 创建时间
"lastModifiedDate":"", // 最后修改日期
"childs":[] // 子节点
}
],
"accounts":[
{
"id":"", // id
"alias":"", // 别名
"accountName":"", // 账户名称
"email":"", // 邮箱
"phone":"", // 手机
"realname":"", // 真实名称
"gender":"", // 性别
"createdDate":"", // 创建日期
"lastModifiedDate":"", // 最后修改日期
"orgId":"", // 组织id
"userStatus":"" // 用户状态:正常NORMAL,禁用DISABLEL,冻结FREEZE,删除DELETE,未激活INACTIVATED,未加入NOT_JOIN,已拒绝REJECTED,注销LOGOUT
}
]
}
getTenantAdmin
-
说明:获取管理员
-
参数:
参数名称 参数说明 是否必须 参数类型 tenantId 租户id 是 String -
响应参数:
参数名称 参数说明 类型 id id String phone 手机号 String alias 昵称 String owner Boolean -
示例:
[
{
"id": "", // id
"phone": "", // 手机号
"alias": "", // 昵称
"owner": false
}
]
getAppGroupListByTenantId
-
说明:获取代理商应用组列表
-
参数:
参数名称 参数说明 是否必须 参数类型 tenantId 租户id 是 String -
响应参数:
参数名称 参数说明 类型 id id String name 组名称 String -
示例:
[
{
"id": "", // id
"name": "" // 组名称
}
]
getAppByGroupId
-
说明:获取代理商应用组下的应用
-
参数:
参数名称 参数说明 是否必须 参数类型 groupId 组id 是 String -
响应参数:
参数名称 参数说明 类型 id id String name 应用名称 String icon 应用图标 String desc 应用描述 String -
示例:
[
{
"id": "", //id
"name": "", // 应用名称
"icon": "", // 应用图标
"desc": "" // 应用描述
}
]
getGroupListByTenantId
-
说明:获取租户的组列表
-
参数:
参数名称 参数说明 是否必须 参数类型 tenantId 租户id 是 String type 租户组类型COMPANY=公司;DEPART=组织 是 String -
响应参数:
参数名称 参数说明 类型 id 组id String name 组名称 String -
示例:
[
{
"id": "",// 组id
"name": "" // 组名称
}
]
getTenantGroupByGroupId
-
说明:获取租户组下的租户信息
-
参数:
参数名称 参数说明 是否必须 参数类型 groupId 组id 是 String type 租户组类型COMPANY=公司;DEPART=组织 是 String -
响应参数:
参数名称 参数说明 类型 tenants 租户 Object name 组名称 String id 组id String childs 下级 List tenants参数名称 参数说明 类型 id 租户id String name 租户名称 String -
示例:
[
{
"tenants": [
{
"name": "", // 租户名称
"id": "" // 租户id
}
],
name:"", // 组名称
id:"", // 组id
childs:[] // 下级
}
]
getChildTenantGroupByTenantId
-
说明:获取租户所在组及其组下的租户信息
-
参数:
参数名称 参数说明 是否必须 参数类型 tenantId 租户id 是 String type 租户组类型COMPANY=公司;DEPART=组织 是 String -
响应参数:
参数名称 参数说明 类型 tenants 租户 Object name 组名称 String id 组id String childs 下级 List tenants参数名称 参数说明 类型 id 租户id String name 租户名称 String -
示例:
[
{
"tenants": [
{
"name": "", // 租户名称
"id": "" // 租户id
}
],
name:"", // 组名称
id:"", // 组id
childs:[] // 下级
}
]
msgEventConfirm
-
说明:事件消息确认
-
参数:
参数名称 参数说明 是否必须 参数类型 appId 应用id 是 String tenantId 租户id 是 String -
响应参数:无
checkGroupAdminByTenantId
-
说明:检查租户是否是租户组所有者
-
参数:
参数名称 参数说明 是否必须 参数类型 tenantId 租户id 是 String -
响应参数:
参数名称 参数说明 类型 boolean true或false Boolean
getTenantInfoByTenantId
-
说明:根据租户id获取租户信息
-
参数:
参数名称 参数说明 是否必须 参数类型 tenantId 租户id 是 String -
响应参数:
参数名称 参数说明 类型 id 租户id String name 租户名称 String code 统一社会信用代码 String staffSize 人员规模 XS: 1-25名员工(微信企业) *S: 26-99名员工(小型企业) M: 100-999名员工(中型企业) L: 1000+名员工(大型企业) String province 省 AreaDTO city 市 AreaDTO county 县 AreaDTO address 详细地址 String logo 企业logo String industryCategoryName 所属行业名 String legalPersonName 法定代表人 String createdDate 成立时间 String isv 是否isv服务商 boolean AreaDTO参数名称 参数说明 类型 id id String name 名称 String
msgSendMessage
-
说明:应用发送订阅消息
-
参数:
参数名称 参数说明 是否必须 参数类型 messageType 消息类型 0:应用消息 是 String message 消息 是 Object Message参数名称 参数说明 是否必须 参数类型 accountId 接收者id 否 List content 消息内容 否 String title 消息标题 否 String receiveType 发送方式 COMMON:站内信 是 String logo 消息类型logo 否 String category 消息类型 否 String templateId 模板id 否 String map 参数 否 Map clientId 应用id,默认当前应用id 否 String topicId 主题id 是 String extra 额外参数 否 Map msgWebAction web端消息行为 否 Object msgMobileAction 手机端消息行为 否 Object MsgWebAction参数名称 参数说明 是否必须 参数类型 messageAction 跳转方式 url链接跳转:URl_JUMP 否 String url 跳转链接 否 String MsgMobileAction参数名称 参数说明 是否必须 参数类型 messageAction 跳转方式 url链接跳转:URl_JUMP 否 String url 跳转链接 否 String -
响应参数:
参数名称 参数说明 类型 msgId 消息id数组 Array[MessageId] MessageId参数说明 参数说明 类型 msgId 消息id String
| accountId | 账号id | String |
msgDealMessage
-
说明:处理待办消息
-
参数:
参数名称 参数说明 是否必须 参数类型 ids 消息id 是 String -
响应参数:无
版本更新记录
0.0.2-RELEASE
- 新增开放能力获取组织和用户接口LicosOrgUserDTO getOrgAndUser(String tenantId, Date updateTime, String idToken)
0.0.3-RELEASE
- 删除应用相关开放能力
0.0.4-RELEASE
- 修改开放能力获取组织和用户接口LicosOrgUserDTO getOrgAndUser(String tenantId, Date updateTime, String idToken)返回值
- 新增开放能力获取租户id下的组织和用户接口LicosOrgUserDTO getOrgAndUserByTenantId(String tenantId)
- 新增开放能力获取idToken下的组织和用户接口LicosOrgUserDTO getOrgAndUserByIdToken(String idToken);
0.0.5-RELEASE
- 删除配置
licos.oauth2.client.provider.authorization-uri
,licos.oauth2.client.provider.token-uri
,licos.oauth2.client.provider.user-info-uri
,新增配置licos.oauth2.client.provider.auth-uri
- 废弃一些开放能力接口
- LicosOpenUserInfoDTO getUserInfo(String idToken);
- LicosPage
pageUserInfo(Integer pageIndex, Integer pageSize, String orgId, String keywords, String idToken); - List
getOrgTree(String idToken); - List
getOrgTypeEnum(String idToken); - LicosPage
getOrgInfoByType(Integer pageIndex, Integer pageSize, String type, String idToken); - void addOrg(LicosOrgAddDTO licosOrgAddDTO, String idToken);
- void removeOrg(String orgId, String idToken);
- List
getRoleByAccountId(String accountId, String idToken); - List
getRoleList(String orgId, String idToken);
- 新增开放能力接口:
- LicosOpenUserInfoDTO getUserInfoByAccountId(String accountId);
- LicosPage
pageUserInfoList(Integer pageIndex, Integer pageSize, String orgId, String tenantId, String keywords); - List
getOrgTreeList(String tenantId); - List
getOrgTypeEnum(); - LicosPage
getOrgByType(Integer pageIndex, Integer pageSize, String type, String tenantId); - void addOrg(LicosOrgAddDTO licosOrgAddDTO);
- void removeOrg(String orgId);
- List
getRoleByAccountId(String accountId); - List
getTenantAdmin(String tenantId); - List
getRoleList(String orgId);
0.0.6-RELEASE
- 新增一些开放能力接口:
- List
getAppGroupListByTenantId(String tenantId); - List
getAppByGroupId(String groupId); - List
getGroupListByTenantId(String tenantId); - List
getTenantGroupByGroupId(String groupId); - List
getChildTenantGroupByTenantId(String tenantId);
- List
0.0.7-RELEASE
- 修改一些开放能力接口:
- List
getGroupListByTenantId(String tenantId,String type); - List
getTenantGroupByGroupId(String groupId,String type); - List
getChildTenantGroupByTenantId(String tenantId,String type);
- List
0.0.8-RELEASE
- 新增一些开放能力接口:
- void msgEventConfirm(String msgId, MsgStatus status);
- Boolean checkGroupAdminByTenantId(String tenantId);
0.0.9-RELEASE
- 删除配置
licos.oauth2.client.provider.registration.redirect-uri,
新增配置licos.oauth2.client.provider.registration.redirect-uris
- 废弃一些认证接口:
- String getAuthorizeUrl();
- String getAuthorizeUrl(String state);
- 废弃一些开放能力接口:
- public LicosOrgUserDTO getOrgAndUserByIdToken(String idToken)
- 新增认证接口:
- String getAuthorizeUrl(String key, String state);
- 新增开放能力接口:
- LicosTenantDetailDTO getTenantInfoByTenantId(String tenantId);
- 修改开放能力接口:
- public LicosOrgUserDTO getOrgAndUserByTenantId(String tenantId);新增管理员字段
0.0.10-RELEASE
- 开放能力新增消息接口:
- void msgSendMessage(LicosMsgSendDTO licosMsgSendDTO);
- void msgDealMessage(List
ids);
0.0.11-RELEASE
- 开放能力修改消息接口:
- LicosSendSubscribeDTO msgSendMessage(LicosMsgSendDTO licosMsgSendDTO);新增返回消息信息
0.0.12-RELEASE
- 开放能力修改消息接口:
- LicosSendSubscribeDTO msgSendMessage(LicosMsgSendDTO licosMsgSendDTO);返回实体信息修改
0.0.13-RELEASE
- 开放能力修改消息接口:
- void msgEventConfirm(String appId, String tenantId);传递参数修改
1.0.0-RELEASE
- 开放能力添加接口返回参数:
- LicosTenantDetailDTO getTenantInfoByTenantId(String tenantId);添加是否isv服务商字段