当前位置: 首页 > 知识库问答 >
问题:

后端 - emqx 如何设置 casdoor 作为 jwt 形式的客户端接入认证中心?

程胤运
2024-02-03

emqx 如何设置 casdoor 作为 jwt 形式的客户端接入认证中心?
https://casdoor.org

https://www.emqx.io/docs/en/latest/

共有1个答案

池赞
2024-02-03

首先,你需要确保你已经安装了 emqx 和 casdoor,并且它们正在运行。

以下是一个基本的步骤来设置 casdoor 作为 jwt 形式的客户端接入认证中心:

  1. 配置 casdoor

在你的 casdoor 中创建一个新的角色并为其生成 JWT 密钥。

# 创建一个新的角色$ casdoor create-role my-role# 为该角色生成 JWT 密钥$ casdoor role-jwt my-role

这将生成一个公钥和私钥。你需要将公钥复制到 emqx 中。

  1. 在 emqx 中配置 JWT 认证

在 emqx 的配置文件中,你需要添加一个新的认证插件,并指向你刚刚从 casdoor 复制的公钥。

auth_plugins:  - external  - mqtt_auth_jwtmqtt_auth_jwt:  secret_key: <paste_your_casdoor_public_key_here>
  1. 启动 emqx

重新启动 emqx,现在它应该使用 casdoor 作为其 JWT 认证中心。

  1. 在客户端上设置认证

当你的客户端连接到 emqx 时,它需要使用从 casdoor 获取的 JWT 进行认证。你可以使用现有的 MQTT 客户端库(如 Paho MQTT)来做到这一点。

例如,在 Python 中,你可以这样做:

import paho.mqtt.client as mqttimport jwt# 从 casdoor 获取的 JWTjwt_token = "your_jwt_token"client = mqtt.Client()client.username_pw_set(jwt_token)  # 使用 JWT 作为用户名和密码进行认证client.connect("your_emqx_broker", 1883, 60)  # 连接到 emqx broker

注意:这只是一个基本的设置示例,你可能需要根据你的具体需求进行调整。例如,你可能需要配置更复杂的 JWT 策略或使用其他认证方法。

 类似资料:
  • 我有Spring座后端和角前端。 身份验证是使用请求JSON正文中带有用户名和密码的“/登录”URL的POST请求来执行的(我使用基于表单的身份验证)。REST后端回复OK代码。一切都很好,我可以执行来自前端的其他需要身份验证的请求。 但是前端需要知道身份验证用户的角色是什么,以便它可以显示正确的视图/记录。我们从哪里可以在前端得到这个角色?我们从身份验证中得到的唯一响应是OK,这对于REST来说

  • 自定义成菜单 说明: 1)启用该功能后,直播客户端可以通过自定义菜单的方式加载用户自定义的网页,方便结合自身业务进行交互操作(客户端5.0.0以上版本支持) 问卷设置 说明: 1)在直播管理页面点击 “问卷设置”,启用该功能后,直播客户端可以通过接口请求的方式将用户问卷库中的问卷导入到客户端中使用 2)关于问卷设置的具体功能及使用方法,请参考:问卷接口开发指南 菜单设置 说明: 1)支持对客户端的

  • 客户端接入 积分商城是纯H5页面形式的,开发者客户端集成兑吧积分商城的方法是,直接在自己app的webview加载积分商城H5页面。 H5接入 开发者客户端接入,加载积分商城页面时,请务必做到以下几点,以保证积分兑换的用户体验。 保证webview可以自行适应页面:对接联调时需测试商城首页、商品详情页、活动页内容是否适配正常; Android应用下,为了用户兑换优惠券之后可以方便的去使用,请设置W

  • 在我做了插座之后。多房间聊天应用程序的IO服务器如何使用https://github.com/socketio/socket.io-client-java ? 我搜索了很多,在socket的客户端还没有找到最新的例子。对于android,大多数教程和示例都是针对带有节点的服务器端的。js。

  • 我对客户端如何连接到其struct sockaddr_in设置为ADDRESS.sin_addr的服务器感到非常困惑。s_addr=htonl(INADDR_ANY); 绑定调用后,服务器监听套接字将被设置为INADDR_ANY,客户端将如何连接到设置为INADDR_ANY的套接字? 在connect()系统调用之前,客户端将传递到sockaddr_instruct的地址是什么?是服务器的ip地址

  • 我使用使用SSL的安全通道通过JMS与Weblogic IBM Webpsphere MQ建立了连接。我在Weblogic上的应用程序收到了来自MQ的消息。正在将应答发送到应答队列。响应头存在MQMD,它填充java。在参数持久化JMS发送值“1”中。其他系统需要在持久化时接收值“0”。如何将此参数设置为java?我猜这个参数是javax。jms。deliverymode。但我不知道怎么设置。 无