使用JWT身份验证

当业务不需要任何扩展需求时(无需通过扩展服务做更多复杂功能时),我们只需要限制连接用户是否合法的情况下,我们只需要启用Coolpy7内核(v7.3.2.9或更高版本)进行快捷的身份合法性身份验证。

使用流程

  1. 通过工具或业务系统生成Jwt Token

  2. 在mqtt客户端登陆时在password参数填写jwt token。注意:需要让password参数生效必须同时填写user参数,可随意填写,只是不允许空值。相关协议规定请查询mqtt协议说明。

  3. http或coap的publish接口均支持使用Jwt token功能。请参阅本手册相关章节。

演练

1.通过jwt.io网站生成jwt token

复制左边的Encoded内容为实际jwt token

2.配置Coolpy7内核启动相关参数

//-as=1即启动jwt验证功能
//-jsk=coolpy7即设置jwt解密密钥为coolpy7,此密钥必须与你生成jwt token的密钥一致
./go_build_Coolpy7_go_linux -as=1 -jsk=coolpy7

3.通过客户端连接测试

以mqttx客户端工具为例

点击连接按扭即可连接到Coolpy7并完成身份认证。

一般业务场境使用jwt功能是由以下方法构建业务系统

1.通过业务系统生成与业务系统一致的jwt token,通过jwt token自动的超时机制对用户身份核实,并提供临时授权的功能。

2.用户通过已在业务系统中使用的jwt token同时用于连接到coolpy7的相关功能进行身份验证。

3.即可达到同一密钥,又能限制非法用户连接到cp7,还可使用到jwt的口令超时验证功能。

相关测试用例代码请参阅

http用例:https://github.com/Coolpy7/coolpy7_benchmark/blob/master/test_coap_publish/cp7_coap_pub_jwt.go

coap用例:https://github.com/Coolpy7/coolpy7_benchmark/blob/master/test_coap_publish/cp7_coap_pub_jwt.go