我目前正在尝试通过 Crossbar/Autobahn 使用 Websockets 实现用户通知系统。我已经完成了多项测试并浏览了文档,但是,我不确定是否有解决方案可以让以下工作流程工作:
- 用户使用 Web 应用程序登录——这是通过 JWT 完成的
crossbar
前端与正在运行的实例建立 websocket 连接。- 前端尝试订阅专门用于用户通知的 URI:即
com.example.notifications.user.23
或com.example.user.23.notifications'. Where
23` 是用户 ID。 - 检查用户的 JWT 以查看是否允许用户访问订阅。
- 当活动生成并引起通知时,后端会发布用户特定的 URI。
对于第 3 步,我无法判断当前的支持身份验证方法是否满足我的需要。理想情况下,我想要一个可以自定义的身份验证方法(以便在 Crossbar 中实现 JWT 身份验证器),我可以将其应用于 URI 模式,但不能将整个模式的访问权限授予订阅用户。这部分通过动态身份验证方法解决,但缺少后半部分:
例如(我理想的工作流程):
- 用户尝试订阅 URI
com.example.user.23.notifications
。 - URI 匹配
com.example.user..notifications
(http://crossbar.io/docs/Pattern-Based-Subscriptions/中的通配符模式) - 验证令牌已验证,并且用户只能
com.example.user.23.notifications
访问.
以上是否可以通过简单的方式实现?据我所知,只有当我以某种方式生成一个.crossbar/config.json
包含所有用户 ID 的 URI 排列的...并为每个新用户自动生成一个新配置时才有可能——这完全不是一个合理的解决方案。
任何帮助表示赞赏!