emqx 如何设置 casdoor 作为 jwt 形式的客户端接入认证中心?
https://casdoor.org
emqx 如何设置 casdoor 作为 jwt 形式的客户端接入认证中心?
https://casdoor.org
首先,你需要确保你已经安装了 emqx 和 casdoor,并且它们正在运行。
以下是一个基本的步骤来设置 casdoor 作为 jwt 形式的客户端接入认证中心:
在你的 casdoor 中创建一个新的角色并为其生成 JWT 密钥。
# 创建一个新的角色
$ casdoor create-role my-role
# 为该角色生成 JWT 密钥
$ casdoor role-jwt my-role
这将生成一个公钥和私钥。你需要将公钥复制到 emqx 中。
在 emqx 的配置文件中,你需要添加一个新的认证插件,并指向你刚刚从 casdoor 复制的公钥。
auth_plugins:
- external
- mqtt_auth_jwt
mqtt_auth_jwt:
secret_key: <paste_your_casdoor_public_key_here>
重新启动 emqx,现在它应该使用 casdoor 作为其 JWT 认证中心。
当你的客户端连接到 emqx 时,它需要使用从 casdoor 获取的 JWT 进行认证。你可以使用现有的 MQTT 客户端库(如 Paho MQTT)来做到这一点。
例如,在 Python 中,你可以这样做:
import paho.mqtt.client as mqtt
import jwt
# 从 casdoor 获取的 JWT
jwt_token = "your_jwt_token"
client = mqtt.Client()
client.username_pw_set(jwt_token) # 使用 JWT 作为用户名和密码进行认证
client.connect("your_emqx_broker", 1883, 60) # 连接到 emqx broker
注意:这只是一个基本的设置示例,你可能需要根据你的具体需求进行调整。例如,你可能需要配置更复杂的 JWT 策略或使用其他认证方法。
8 回答2.6k 阅读
2 回答5.1k 阅读✓ 已解决
5 回答867 阅读
3 回答2.2k 阅读
2 回答2.1k 阅读
1 回答780 阅读✓ 已解决
2 回答712 阅读✓ 已解决