Mercure-Hub: 訂閱者的身份驗證
本文件是入門指南指南的一部分。請在此處查看完整指南:如何開始使用 Mercure-hub。
👋 歡迎來到 Stackhero 文件!
Stackhero 提供現成的 Mercure-Hub cloud 解決方案,帶來多項好處,包括:
- 無限制的請求和消息大小。
- 使用 HTTPS 保護的可自定義域名(例如,https://real-time.your-company.com)。
- 只需點擊即可輕鬆更新。
- 由專用私有 VM提供的最佳性能和強大安全性。
- 可用於 🇪🇺 歐洲 和 🇺🇸 美國。
節省時間並簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Mercure-Hub cloud hosting 解決方案!
在之前的示例中,訂閱者未經身份驗證,您需要在 Stackhero 儀表板上允許 "匿名訂閱者"。
要驗證訂閱者,您需要使用 Stackhero 儀表板中定義的 "Subscriber JWT key" 生成 JWS (JSON Web Signature)。然後通過瀏覽器 cookies 或 authorization 標頭發送 JWS。
由於 Server-Sent Events API 不支持自定義標頭定義,因此必須使用 cookies。然而,使用 cookies 意味著您的 Mercure-hub 服務器和客戶端需要共享相同的域(或子域)。
如果您希望在不同域之間使用 SSE,請考慮允許標頭定義的 EventSource polyfill。可以在 https://github.com/Yaffle/EventSource 找到一個選項。
首先,在您的後端為客戶端生成 JWS。示例可在 backend/subscriberJwsGenerator.js 中找到。只需輸入您的訂閱者 JWT 並使用 node subscriberJwsGenerator.js 運行腳本。
然後,在前端的 frontend/subscriberWithAuthorization.html 文件中,填寫您的 endpoint 和生成的 JWS。在瀏覽器中打開該文件,Mercure-hub 現在將與身份驗證一起工作!
別忘了在 Stackhero 儀表板中取消勾選 "允許匿名訂閱者"!