ThingsBoard的REST 收款定制开发文档使用的是Swagger,收款定制开发大多数的接口都可以通过这个地址来查看和测试(后面带锁图标的接口表示需要鉴权)
http://{{YOUR_HOST}}:{{PORT}}/swagger-ui.html
- 1
一、登录获取token
登录接口在login-endpoint组中
POST /api/auth/login
- 1
请求
账号和密码放在requestBody请求体中
{ "username": "tenant@thingsboard.org", "password": "tenant"}
- 1
- 2
- 3
- 4
响应
返回token和refreshToken
{ "token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi...", "refreshToken": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi..."}
- 1
- 2
- 3
- 4
需要鉴权的接口,在Header中把token带上(注意:Bearer后面有一个空格):
X-Authorization: Bearer $JWT_TOKEN_VALUE
- 1
两个token,都是JWT加密,可以通过在线工具解密。解密出来,token的有效期是2.5h,refreshToken是7day。JWT解释说明和解密工具见最后
二、刷新token
刷新token没有通过生成在文档里
POST /api/auth/token
- 1
请求
把refreshToken放在请求体中(Header无需携带token):
{ "refreshToken": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi..."}
- 1
- 2
- 3
响应
将返回新的token和新的refreshToken
{ "token": "abchbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi...", "refreshToken": "efghbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi..."}
- 1
- 2
- 3
- 4