ThingsBoard的REST API文档使用的是Swagger,大多数的接口都可以通过这个地址来查看和测试(后面带锁图标的接口表示需要鉴权)
http://{{YOUR_HOST}}:{{PORT}}/swagger-ui.html
一、登录获取token
登录接口在login-endpoint组中
POST /api/auth/login
请求
账号和密码放在requestBody请求体中
{"username":"[email protected]","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..."}
三、参考
- ThingsBoard REST API
- how to use refresh token to renew session #840
- 阮一峰——JSON Web Token 入门教程
- JWT在线解密
版权归原作者 a10615 所有, 如有侵权,请联系我们删除。