OpenAPI增强型Token认证,请求管理更高效安全

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

OpenAPI增强型Token认证,请求管理更高效安全

适用版本

该功能适用版本为苍穹V6.0.1以上


功能速览

以下是增强型Token认证提供的接口列表:



开发人员根据业务需要调用getToken接口获取令牌然后缓存在调用端,在access_token过期之前(2小时内)可以调用verifyToken接口验证access_token有效性,并获取最新的过期时间。


在access_token过期之前,调用refreshToken接口刷新access_token的有效期,从而在不换access_token的情况下继续调用OpenAPI。


3.1 getToken

功能描述:令牌(access_token)是第三方应用调用OpenAPI的调用凭证,每次请求客户端都需要带上token,通过请求头发送,服务端以此来控制身份,当token过期后,服务端会销毁token,客户端需要重新请求获得token。

请求 URL:http://{{localhost}}/kapi/oauth2/getToken

调用方式:HTTP调用

请求方式:POST

请求类型:Content-Type:application/json

调用频率:1分钟30次

token有效期:2小时


注意事项:

1. 令牌的获取是有限制的,每个令牌的有效期为 2 小时,请自行做好令牌的管理,在令牌快过期时(通过验证接口获取剩余过期时间比如1小时50分),可重新调用接口获取或调用刷新令牌接口延长令牌有效期。

2. 数据中心accountId,同时支持在Header和Body传输。


请求Body参数:



请求参数示例:


{
    "client_id": "thirdappunittest_003",
    "client_secret": "Abcdrty@1234567890#@2",
    "username":"zhangSan",
    "accountId": "1355633519610561531",
    "language": "zh_CN",
    "nonce": "123",
    "timestamp": "2023-09-08 11:47:00"
}


返回参数:



返回参数示例:


{
"data": {
    "access_token":"OPENAPIAUTH_MTMzMTIwNDQ0NTk5NTc5NDQzMl9FZ3h4MXU1Zzd2Qk9kRjR4MzIxQXZKcXU5c2hpbzNCaTRtTGIzbEsyM3JnbmFJUUJEMEltZUt3UURYQmFFdDJIVnc3MWtyaTVUR01ZbTRDUGVETDVSamE2R0F1a2g5SGpVcmwx",
    "token_type": "Bearer",
    "refresh_token": "d367106c-de46-4fc4-9e1a-59cbcfc430d2",
    "scope": "API",
    "expires_in": "7199977",
    "id_token": "OPENAPIAUTH_ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSVV6STFOaUo5LmV5Sm1hV1FpT2lJeE16UTJOamN6T1NJc0luTjFZaUk2SW10a2FuZDBJaXdpWm5Cb2IyNWxJam9pTVRjeU9UazVPVGs1T1RraUxDSmxhV1FpT2lJeE1UUTNOVFl4TnlJc0ltWjBjblZsYm1GdFpTSTZJa2xGVWxBaUxDSm1iM0puYVdRaU9pSXhJaXdpWm1WdFlXbHNJam9pYVdWeWNFQnJhVzVuWkdWbExtTnZiU0lzSW1semN5STZJbXRrSWl3aWRYTmxjbWxrSWpvaU1UTTBOalkzTXpraUxDSm1ZbWw2Y0dGeWRHNWxjbWxrSWpvaU1DSXNJbVpzWVhOMGJHOW5hVzVwY0NJNklqRTNNaTR5TUM0eE5DNDJOeUlzSW1acGMyRmpkR2wyWldRaU9pSXhJaXdpWm05d1pXNXBaQ0k2SWpWaE1tUmxabU5pWlRSaU1EazFOMlpoTURobU9HTTNNaUlzSW1ac1lYTjBiRzluYVc1MGFXMWxJam9pTWpBeU15MHdPQzB5T1NBd01Eb3dNRG93TUM0d0lpd2labVZ1WVdKc1pTSTZJakVpTENKbWRXbGtJam9pTVRNME5qWTNNemtpTENKMWMyVnlWSGx3WlNJNklqRWlMQ0psZUhBaU9qRTJPVFEyTURReU1UZ3NJbWxoZENJNk1UWTVORFU1TnpBeE9Dd2labWx6Y21WbmFYTjBaV1FpT2lJeElpd2labkJ6ZDNOMGNtRjBaV2Q1YVdRaU9pSTNOakk1TnpjM09UVTNOekl3TURVek56WWlMQ0oxYzJWeWIzQmxibWxrSWpvaU5XRXlaR1ZtWTJKbE5HSXdPVFUzWm1Fd09HWTRZemN5SWl3aWRYTmxjbTVoYldVaU9pSkpSVkpRSW4wLi1ZZEd1cWhIX25Mcm5ibURnQTlfU2FvQkZsTGJWTTJEUmp2cnR4NXZwckk=",
    "id_token_expires_in": "7199977",
    "language": "zh_CN"
        },
    "errorCode": "0",
    "message": "",
    "status": true
}


错误码说明:



3.2 verifyToken


功能描述:检测密钥令牌的有效性。

请求 URL:http://{{localhost}}/kapi/oauth2/verifyToken

调用方式:HTTP调用

请求方式:POST

请求类型:Content-Type:application/json

调用频率:1分钟30次

token有效期:2小时


请求Body参数:



请求参数示例:


{
  "client_id": "thirdappunittest_003",
  "token_type_hint": "access_token",
    "token":"OPENAPIAUTH_MTMzMTIwNDQ0NTk5NTc5NDQzMl9peGdobmxERWluY1FpZDc2R2pjUDcyYlg0UTNwNDhpczZXM01NYTlsTDVhNEU2TFRkT0ZIWTlybUl5SDdvQUJ1ZGFSaGtWU0hGNlNRRTBjMjZ6MkxxQWRjbkNpTzBnd1ZzMW9P",
  "nonce": "1234",
  "timestamp": "2023-09-15 16:14:00",
  "accountId": "1331204445995794432"
}


返回参数:



返回参数示例:


{
    "data": {
    "expires_in": "7133040",
    "active": true,
    "scope": "API"
    },
    "errorCode": "0",
    "message": "",
    "status": true
}


错误码说明:



3.3 refreshToken

功能描述:当第三方应用通过 getToken接口获取了请求令牌后,可以使用返回参数中的刷新令牌(refresh_token),通过该接口刷新access_token的有效期。

请求 URL:http://{{localhost}}/kapi/oauth2/refreshToken

调用方式:HTTP调用

请求方式:POST

请求类型:Content-Type:application/json

调用频率:1分钟30次

token有效期:2小时

请求Body参数:



请求参数示例:


{
    "client_id": "thirdappunittest_003",
    "grant_type": "refresh_token",
    "refresh_token": "df591867-fb0d-4375-9e77-98ea276f59c0",
    "accountId": "1355633519610561536",
    "nonce": "123",
    "timestamp": "2023-09-08 11:47:00"
}


返回参数:



返回参数示例:


{
    "data": {
    "access_token":"OPENAPIAUTH_MTMzMTIwNDQ0NTk5NTc5NDQzMl9zbmtvenFOb1hJcFpOdVhFY09aZTloVGliZjBIUTBuSlgyY2x0Uk95YTZkOTUxMjE0T0xQWVc4dldsU1Q4MjBqUDdqZjk5VmZSRzM5NlVlOTJRWWVIN1hSZTdINmYyN3pKSDVQ",
    "token_type": "Bearer",
    "refresh_token": "d367106c-de46-4fc4-9e1a-59cbcfc430d2",
    "scope": "API",
    "expires_in": "7199977",
    "id_token":"OPENAPIAUTH_ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSVV6STFOaUo5LmV5Sm1hV1FpT2lJeE16UTJOamN6T1NJc0luTjFZaUk2SW10a2FuZDBJaXdpWm5Cb2IyNWxJam9pTVRjeU9UazVPVGs1T1RraUxDSmxhV1FpT2lJeE1UUTNOVFl4TnlJc0ltWjBjblZsYm1GdFpTSTZJa2xGVWxBaUxDSm1iM0puYVdRaU9pSXhJaXdpWm1WdFlXbHNJam9pYVdWeWNFQnJhVzVuWkdWbExtTnZiU0lzSW1semN5STZJbXRrSWl3aWRYTmxjbWxrSWpvaU1UTTBOalkzTXpraUxDSm1ZbWw2Y0dGeWRHNWxjbWxrSWpvaU1DSXNJbVpzWVhOMGJHOW5hVzVwY0NJNklqRTNNaTR5TUM0eE5DNDJOeUlzSW1acGMyRmpkR2wyWldRaU9pSXhJaXdpWm05d1pXNXBaQ0k2SWpWaE1tUmxabU5pWlRSaU1EazFOMlpoTURobU9HTTNNaUlzSW1ac1lYTjBiRzluYVc1MGFXMWxJam9pTWpBeU15MHdPQzB5T1NBd01Eb3dNRG93TUM0d0lpd2labVZ1WVdKc1pTSTZJakVpTENKbWRXbGtJam9pTVRNME5qWTNNemtpTENKMWMyVnlWSGx3WlNJNklqRWlMQ0psZUhBaU9qRTJPVFEzTlRBek56SXNJbWxoZENJNk1UWTVORGMwTXpFM01pd2labWx6Y21WbmFYTjBaV1FpT2lJeElpd2labkJ6ZDNOMGNtRjBaV2Q1YVdRaU9pSTNOakk1TnpjM09UVTNOekl3TURVek56WWlMQ0oxYzJWeWIzQmxibWxrSWpvaU5XRXlaR1ZtWTJKbE5HSXdPVFUzWm1Fd09HWTRZemN5SWl3aWRYTmxjbTVoYldVaU9pSkpSVkpRSW4wLlc2S2ZRcE1nbUN6SzI1YnN0YUV1ZGoyNm1BMEdzZjdMR1FueU15NkgydEk=",
    "id_token_expires_in": "7199977",
    "language": null
        },
    "errorCode": "0",
    "message": "",
    "status": true
}


错误码说明:



3.4 withdrawToken


功能描述:撤回密钥令牌。

请求 URL:http://{{localhost}}/kapi/oauth2/withdrawToken

调用方式:HTTP调用

请求方式:POST

请求类型:Content-Type:application/json

调用频率:1分钟30次

token有效期:2小时


请求Body参数:



请求参数示例:


{
    "client_id": "thirdappunittest_003",
    "client_secret": "Abcdrty@1234567890#@2",
    "token_type_hint": "access_token",
    "token":"OPENAPIAUTH_MTMzMTIwNDQ0NTk5NTc5NDQzMl9peGdobmxERWluY1FpZDc2R2pjUDcyYlg0UTNwNDhpczZXM01NYTlsTDVhNEU2TFRkT0ZIWTlybUl5SDdvQUJ1ZGFSaGtWU0hGNlNRRTBjMjZ6MkxxQWRjbkNpTzBnd1ZzMW9P",
    "nonce": "12345",
    "timestamp": "2023-09-15 16:29:00",
    "accountId": "1331204445995794432"
}


返回参数:



返回参数示例:


{
    "data": true,
    "errorCode": "0",
    "message": "true",
    "status": true
}


错误码说明:


亮点价值

亮点一:规范易用

最新Token认证方式采用通用的参数命名使接口更加规范,简化请求流程,同时提高了易用性。

亮点二:安全可信

引入随机数、时间戳、限流、黑白名单检查以及信息脱敏等措施,有效提升整体安全性,确保数据和令牌的安全传输。


划重点

苍穹V6.0 OpenAPI推出新功能“增强型Token认证”,有利于更好地管理API请求令牌,随时获取、刷新、撤回令牌和验证令牌有效性,提升了Token全生命周期的安全性。使用时应注意:

获取token前必须在OpenAPI应用注册第三方应用,获取对应系统的client_id(系统编码)和client_secret(AccessToken认证密钥)信息;

新增第三方应用AccessToken认证策略卡片默认开启了增强型Token认证,若关闭开关,则仍可使用历史方式通过/api/login.do接口获取access_token。

获取token时必须传入苍穹用户名username,不支持手机号或邮箱。



#往期推荐#

# 一学就会的OpenAPI第三方应用注册流程

还不会自定义OpenAPI出入参?快看这篇锦囊妙计!

扩展插件,一招让你的操作API更灵活!

助力集成开发,一文解锁API文档功能


更多精彩内容,“码”上了解!↓

上传图片

OpenAPI增强型Token认证,请求管理更高效安全

适用版本该功能适用版本为苍穹V6.0.1以上功能速览以下是增强型Token认证提供的接口列表:开发人员根据业务需要调用getToken接口获取令牌,...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息