问题标签 [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.
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:
php - Symfony / Mercure 问题:具有单一自我目标的 2 个用户都可以看到彼此所谓的循环消息
我创建了一个聊天页面,登录用户应该只能通过单个目标看到他自己的消息。但是,每个用户都可以看到每个其他用户所谓的自发(循环)消息。每个登录用户发送他自己的 JWT:
用户聊天页面的JS是这样的:
登录后,聊天页面的 URL 为http://localhost:8000/chat 。
我的 Mercure hub 的参数是这样的:
请帮忙!我使用了每个用户的 JWT,但是隔离更新的安全性不起作用:/
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 配置:
docker - 当使用邮递员的相同请求正常工作时,使用 Symfony HttpClient 的请求返回代码 0
我有一个奇怪的问题,我向邮递员发出的请求(向我的 Mercure 集线器)工作正常,但是使用 Symfony HttpClient 的 Publisher 类(来自 Symfony mercure 包)将产生响应代码 0。根据我的研究这意味着找不到 URL,或者没有返回响应?
我首先认为它可能与 Publisher 类本身有关,这就是为什么在 Github 上打开这个问题,但经过一番玩弄之后,我认为我的容器可能存在通信错误?我尝试为我的 Mercure 容器提供“网络:内部”,其他一些容器也使用它,但这也无济于事。
任何想法都非常感谢..
/e:我的码头工人撰写:
symfony - 美居的 JWT 密钥
我尝试为 Mercure 设置生成 JWT 密钥
我使用这本手册
对于通过 myJWTKey JWT 是
我找到了一个令牌生成器(Signed JSON Web Token)
http://jwtbuilder.jamiekurtz.com/
但我发现没有生成正确 JWT 的设置。我该怎么做?我想念什么?
我尝试为环境设置生成令牌
此令牌用于 docker-compose 中的默认密码
如果我将 myJWTKey 更改为 mysecure pass - 如何生成令牌?
symfony - Symfony Mercure:EventSource 不发送 cookie
使用Symfony Mercure,我想发送一个 cookie 授权:
- Symfony 服务器:https ://127.0.0.1:8000/
- 美居中心:http://localhost:3000/.well-known/mercure
我用这个命令启动我的 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=false
and samesite=none
,但从未传输过 cookie。
以下是来自事件源请求(Mercure Hub)的信息:
symfony - 尝试将发布请求发送到美居中心时获得未经授权
我正在与美居合作以获得实时响应。
我用 docker 配置了美居:
我测试美居的开发网址是:
我使用https://jwt.io/生成了令牌
我使用了这个有效载荷:
和 mySecretKeyPublisher :
现在我用邮递员测试:
我总是:未经授权
symfony - symfony 5 mercure bundle HTTP/1.1 400 Bad Request 返回
我正在尝试使用 symfony mercure 捆绑包,但即使使用文档中给出的示例,它似乎也不起作用。这是我的控制器中的代码
这是我得到的错误。
为“http://localhost:3000/.well-known/mercure”返回了 HTTP/1.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 配置:
正确的配置应该是什么?
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: