emqx
一 EXQM 认证方式
- Password-Based: 用户名+密码
- SCRAM: MQTT 5.0 增强型认证
- JWT: JWT 令牌
二 JWT 认证
[!note] JWT 格式:响应头. 数据块. 加密结果
JWT 例子: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
响应头
以下代码经 HS 256 加密后得到
# 一般固定为 { "alg": "HS256", "typ": "JWT" }
数据块
以下代码经 HS 256 加密后得到
# 可包含任何数据 { "userid": "1", "username": "yanan", "iat": 1516239022 # 必须 [jwt生成日期] }
加密结果
响应头
+数据块
经过 :secret:加密关键字
加密后得到
[!tip] 提示
在 EMQX 后台指定Secret
三 JWT 认证流程
- 客户端根据 EMQX 里指定的
加密关键字
生成自己的 JWT 令牌 - 客户端把自己的 JWT 令牌以
username
或password
的值提交
[!tip] 提示
在 EMQX 后台指定提交方式
- EMQX 收到客户端提交的 JWT 后解密出
响应头
与数据块
的数据,并根据Secret
计算出自己的 JWT 并对比