问题标签 [mercure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
711 浏览

javascript - dunglas mercure 服务器/javascript EventSource withCredentials:mercureAutorisation cookie 未传输

使用 symfony 4.4 进行 mercure /hub 调度更新工作正常,直到我不尝试使用带有 mercureAuthorization cookie 的凭据。

一旦我在 EventSource 中添加 {withCredentials: true},firefox 就会以“CORS missing”踢出事件源请求连接(而 chrome 不会)

另外,我应该让 mercureAuthorization cookie 从我的页面请求传递到事件源请求,但事实并非如此。

这是我的主页 cookie:

我的事件源请求

内部没有 Set-Coockie。

编辑:我终于设法通过在同一个域上工作来解决它!所以知道我运行美居服务器:

发帖自

设置 Cookie:

0 投票
0 回答
473 浏览

php - Symfony / Mercure 问题:具有单一自我目标的 2 个用户都可以看到彼此所谓的循环消息

我创建了一个聊天页面,登录用户应该只能通过单个目标看到他自己的消息。但是,每个用户都可以看到每个其他用户所谓的自发(循环)消息。每个登录用户发送他自己的 JWT:

用户聊天页面的JS是这样的:

登录后,聊天页面的 URL 为http://localhost:8000/chat 。

我的 Mercure hub 的参数是这样的:

请帮忙!我使用了每个用户的 JWT,但是隔离更新的安全性不起作用:/

0 投票
0 回答
505 浏览

docker - 如何使 Mercure hub 的 API 平台自动发现机制与 Docker 映像一起使用?

我开发了一个演示项目来说明我正在做的关于Mercure协议的演示,其中我还使用了 API 平台。我使用了自动发现机制来检索 Mercure 集线器 url(API 平台发送一个Link标头,以便前端应用程序可以在事先不知道的情况下获取集线器 url)。但是我不得不进行重构(该项目使用的是我工作的公司的 docker images 和 composer repo,我第一次展示 Mercure 的地方),并且在某些时候(我不记得确切的时间),自动发现机制不起作用了。

我发现它为什么不起作用,那是因为 API Platform 发送了.env文件中指示的 Mercure 集线器 url,它不是http://localhost:3000/.well-known/mercure(我订阅的集线器 url),但是http://mercure/.well-known/mercure,其中第一个mercure是我的名称美居码头集装箱。我的前端应用程序试图订阅那个不存在的 url。为了暂时解决这个问题,我刚刚在我的前端应用程序中硬编码了集线器 url,但我真的很想知道是否有解决方案可以将自动发现机制与 Mercure docker 映像一起使用。

MERCURE_PUBLISH_URL.env=时遇到的错误http://localhost:3000/.well-known/mercure
Couldn't connect to server for "http://localhost:3000/.well-known/mercure".

我的.env工作配置:
MERCURE_PUBLISH_URL=http://mercure/.well-known/mercure
注意:我尝试过设置MERCURE_SUBSCRIBE_URL=http://localhost:3000/.well-known/mercure,但没有改变任何东西

我订阅集线器的前端应用程序的一部分:
注释掉的代码是如何通过解析链接标头来自动发现集线器 url,由于上述原因,我现在可以这样做。

我的 docker-compose Mercure 配置:

0 投票
2 回答
1728 浏览

docker - 当使用邮递员的相同请求正常工作时,使用 Symfony HttpClient 的请求返回代码 0

我有一个奇怪的问题,我向邮递员发出的请求(向我的 Mercure 集线器)工作正常,但是使用 Symfony HttpClient 的 Publisher 类(来自 Symfony mercure 包)将产生响应代码 0。根据我的研究这意味着找不到 URL,或者没有返回响应?

我首先认为它可能与 Publisher 类本身有关,这就是为什么在 Github 上打开这个问题,但经过一番玩弄之后,我认为我的容器可能存在通信错误?我尝试为我的 Mercure 容器提供“网络:内部”,其他一些容器也使用它,但这也无济于事。

任何想法都非常感谢..

/e:我的码头工人撰写:

0 投票
3 回答
3077 浏览

symfony - 美居的 JWT 密钥

我尝试为 Mercure 设置生成 JWT 密钥

我使用这本手册

https://medium.com/@stefan.poeltl/instant-realtime-notifications-with-symfony-and-mercure-e45270f7c8a5

对于通过 myJWTKey JWT 是

我找到了一个令牌生成器(Signed JSON Web Token)

http://jwtbuilder.jamiekurtz.com/

但我发现没有生成正确 JWT 的设置。我该怎么做?我想念什么?

我尝试为环境设置生成令牌

此令牌用于 docker-compose 中的默认密码

如果我将 myJWTKey 更改为 mysecure pass - 如何生成令牌?

0 投票
1 回答
1471 浏览

symfony - Symfony Mercure:EventSource 不发送 cookie

使用Symfony Mercure,我想发送一个 cookie 授权:

我用这个命令启动我的 Mercure 服务器:

这就是我尝试发送 Cookie 的方式withCredentials: true

在我当前的页面https://127.0.0.1:8000/message中,在控制台中,我可以看到 cookie:

设置cookie:mercureAuthorization = ...cookieValue ...; 路径=/.well-known/mercure; 安全的; 仅限http;同一地点=松懈

但是 cookie 永远不会被发送。在我的控制台的网络选项卡中,我可以看到事件源请求http://localhost:3000/.well-known/mercure?topic=https%3A%2F%2Fbubble.com%2Fmessage,但从未传输过 cookie。

我尝试更改secure=falseand samesite=none,但从未传输过 cookie。

以下是来自事件源请求(Mercure Hub)的信息:

在此处输入图像描述

0 投票
1 回答
1014 浏览

symfony - 尝试将发布请求发送到美居中心时获得未经授权

我正在与美居合作以获得实时响应。

我用 docker 配置了美居:

我测试美居的开发网址是:

我使用https://jwt.io/生成了令牌

我使用了这个有效载荷:

和 mySecretKeyPublisher :

在此处输入图像描述

现在我用邮递员测试:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我总是:未经授权

0 投票
1 回答
633 浏览

symfony - symfony 5 mercure bundle HTTP/1.1 400 Bad Request 返回

我正在尝试使用 symfony mercure 捆绑包,但即使使用文档中给出的示例,它似乎也不起作用。这是我的控制器中的代码

这是我得到的错误。

为“http://localhost:3000/.well-known/mercure”返回了 HTTP/1.1 400 错误请求。

有谁知道出了什么问题?

错误图片在这里

这是我的项目的 github 链接

0 投票
1 回答
400 浏览

symfony - ApiPlatform & Mercure(私人主题)

我的架构基于 Symfony 4.4 / ApiPLatform / Mercure / Angular 9。我通过在我的 resources.yaml ApiPlatform conf 文件中添加 mercure:true 从 Mercure 进行了简单的推送。现在我需要将更新设为私有。所以使用 ApiPlatform 我必须添加参数 private:true。但 API 响应现在是:

自 Mercure 0.10 以来,目标不再存在。将更新标记为私有,或将 Mercure 组件降级到版本 0.3

这是我的 yaml 配置:

正确的配置应该是什么?

0 投票
1 回答
313 浏览

api-platform.com - Api Platform Mercure Private Updates Use same JWT for subscribing to Mercure as for User authentication

So I have an Api Platform application with JWT authentication using LexikJWTAuthenticatorBundle. So my users already have a JWT used to authenticate. Can I somehow use this same JWT to authenticate them for private updates on the Mercure hub?

I am not sure how to configure Mercure to use the private/public keys that are using by Lexik: