电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

API认证方式-JWT认证

来源:金蝶云社区作者:金蝶2024-09-236

API认证方式-JWT认证

       JWT(全称是JSON WEB TOKEN)是一种用于双方之间传递安全信息表述性声明规范,和accessToken一样,都是访问资源的令牌,但服务端验证客户端发来的token信息要进行数据的查询操作,JWT验证客户端发来的token在服务端用密钥校验就可以,不用数据库的查询。

JWT结构分为三部分:header、payload、签名。

在头部信息中声明加密算法和常量,把header使用json转化为字符串;

在载荷中声明用户信息以及一些公共和私有的声明。再次使用json把载荷部分转化为字符串;

最后使用header中声明的加密算法和随机生成的secret来进行加密,把第一部分和第二部分的字符串使用header中指定签名算法进行加密。

解密的时候只要客户端带着JWT来发起请求,服务端就直接使用secret进行解密。

金蝶云苍穹JWT认证流程:

1、通过请求指定参数如appId、appSecret、keytype一次性获取JWT。

2、客户端拿到这个JWT,后续每次请求中,客户端会把token放在请求Header中发送给服务器,服务器验证签名是否有效,如果有效那么认证就成功,可以返回客户端需要的数据。

1)获取JWT

 

URL:http://localhost:8080/ierp/api/login.do

 

请求Header参数:

Content-Type=application/json

 

请求BODY参数:

{

    "user": "130****2580",

    "appId": "test",

    "appSecret": "123456789123456789",

    "tenantid": "baseline_a",

    "accountId": "1173910536060928000",

    "usertype": "Mobile",

    "keytype":"JWT"

}

 

 

请求结果:

{

    "data": {

        "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmaWQiOiIxMzQ2NjczOSIsInN1YiI6Imtkand0IiwiZnBob25lIjoiMTcyOTk5OTk5OTkiLCJlaWQiOiIxMTQ3NTYxNyIsImZ0cnVlbmFtZSI6IklFUlAiLCJmb3JnaWQiOiIxMDAwMDAiLCJpc3MiOiJrZCIsInVzZXJpZCI6IjEzNDY2NzM5IiwiZmxhc3Rsb2dpbmlwIjoiMTcyLjIwLjIwMC41NCIsImZpc2FjdGl2ZWQiOiIxIiwiZm9wZW5pZCI6IjVhMmRlZmNiZTRiMDk1N2ZhMDhmOGM3MiIsImZsYXN0bG9naW50aW1lIjoiMjAyMS0wOC0yMCAwMDowMDowMCIsImZlbmFibGUiOiIxIiwiZnVpZCI6IjEzNDY2NzM5IiwidXNlclR5cGUiOiIxIiwiZXhwIjoxNjI5NDQ3MDM1LCJpYXQiOjE2Mjk0Mzk4MzUsImZpc3JlZ2lzdGVkIjoiMSIsInVzZXJvcGVuaWQiOiI1YTJkZWZjYmU0YjA5NTdmYTA4ZjhjNzIiLCJ1c2VybmFtZSI6IklFUlAifQ.kf_UfkQuAPb_qHZAc2ovB7nzpnWIKpl_7eXw42UjNYM",

        "success": true,

        "error_desc": "",

        "expire_time": 1629447035019,

        "error_code": "0"

    },

    "state": "success"

}

HTTP 请求参数说明

传入参数

字段类型

是否必输

字段说明

user

string

用户手机号

appId

string

第三方appId,即例子中的:test

appSecuret

string

第三方app的密码,即例子中的:123456789123456789

tenantid

string

租户ID

accountId

string

数据中心ID, 如果不输入, 默认会选取租户下的缺省数据中心

usertype

String

Mobile: 标识为手机, 默认为手机
Email:标识为email
UserName:标识为用户名

keytype

String

声明认证方式,如jwt

下面详细介绍如何通过JWT调用API服务。

2)GET API 实例

请求示例:

 

URLhttps://feature.kingdee.com:2024/baseline_a/kapi/sys/isc_demo_basedata_1/query?select=name,number&filter=name eq 123asd&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmaWQiOiIxMzQ2NjczOSIsInN1YiI6Imtkand0IiwiZnBob25lIjoiMTcyOTk5OTk5OTkiLCJlaWQiOiIxMTQ3NTYxNyIsImZ0cnVlbmFtZSI6IklFUlAiLCJmb3JnaWQiOiIxMDAwMDAiLCJpc3MiOiJrZCIsInVzZXJpZCI6IjEzNDY2NzM5IiwiZmxhc3Rsb2dpbmlwIjoiMTcyLjIwLjIwMC41NCIsImZpc2FjdGl2ZWQiOiIxIiwiZm9wZW5pZCI6IjVhMmRlZmNiZTRiMDk1N2ZhMDhmOGM3MiIsImZsYXN0bG9naW50aW1lIjoiMjAyMS0wOC0yMCAwMDowMDowMCIsImZlbmFibGUiOiIxIiwiZnVpZCI6IjEzNDY2NzM5IiwidXNlclR5cGUiOiIxIiwiZXhwIjoxNjI5NDQ3MDM1LCJpYXQiOjE2Mjk0Mzk4MzUsImZpc3JlZ2lzdGVkIjoiMSIsInVzZXJvcGVuaWQiOiI1YTJkZWZjYmU0YjA5NTdmYTA4ZjhjNzIiLCJ1c2VybmFtZSI6IklFUlAifQ.kf_UfkQuAPb_qHZAc2ovB7nzpnWIKpl_7eXw42UjNYM&appId=TEST&accountId=1173910536060928000

 

请求结果:

{

    "success": "true",

    "data": {

        "count": 1,

        "header": [

            {

                "name": "name",

                "caption": "名称",

                "type": "String"

            },

            {

                "name": "number",

                "caption": "编码",

                "type": "String"

            }

        ],

        "rows": [

            [

                "123asd",

                "123asd"

            ]

        ]

    }

}

 

HTTP query查询参数说明

传入参数

字段类型

是否必输

API认证方式-JWT认证

JWT(全称是JSON WEB TOKEN)是一种用于双方之间传递安全信息表述性声明规范,和accessToken一样,都是访问资源的令牌,但服务端...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信