zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ThingsBoard——Rest API获取token和刷新token

2023-03-20 14:56:55 时间

ThingsBoard的REST API文档使用的是Swagger,大多数的接口都可以通过这个地址来查看和测试(后面带锁图标的接口表示需要鉴权)

http://{{YOUR_HOST}}:{{PORT}}/swagger-ui.html

一、登录获取token

登录接口在login-endpoint组中

POST /api/auth/login

请求

账号和密码放在requestBody请求体中

{
  "username": "tenant@thingsboard.org",
  "password": "tenant"
}

响应

返回token和refreshToken

{
  "token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi...",
  "refreshToken": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi..."
}

需要鉴权的接口,在Header中把token带上(注意:Bearer后面有一个空格):

X-Authorization: Bearer $JWT_TOKEN_VALUE

两个token,都是JWT加密,可以通过在线工具解密。解密出来,token的有效期是2.5h,refreshToken是7day。JWT解释说明和解密工具见最后

二、刷新token

刷新token没有通过Swagger生成在文档里

POST /api/auth/token

请求

把refreshToken放在请求体中(Header无需携带token):

{
  "refreshToken": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi..."
}

响应

将返回新的token和新的refreshToken

{
  "token": "abchbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi...",
  "refreshToken": "efghbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi..."
}

三、参考