Mercure-Hub: サブスクライバーの認証
このドキュメントははじめにガイドの一部です。完全なガイドはこちらからご覧いただけます:Mercure-hubの始め方。
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供するMercure-Hubクラウドソリューションを提供しています。
- 無制限のリクエストとメッセージサイズ。
- HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://real-time.your-company.com)。
- ワンクリックで簡単に更新。
- プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ。
- 🇪🇺 ヨーロッパと🇺🇸 アメリカで利用可能。
時間を節約し、生活を簡素化:StackheroのMercure-Hubクラウドホスティングソリューションを試すのに5分しかかかりません!
前の例では、サブスクライバーは認証されておらず、Stackheroダッシュボードで「匿名サブスクライバー」を許可する必要がありました。
サブスクライバーを認証するには、Stackheroダッシュボードで定義された「Subscriber JWT key」を使用してJWS(JSON Web Signature)を生成します。JWSは、ブラウザのクッキーまたはauthorizationヘッダーを使用して送信されます。
Server-Sent Events APIはカスタムヘッダーの定義をサポートしていないため、クッキーを使用する必要があります。ただし、クッキーを使用するには、Mercure-hubサーバーとクライアントが同じドメイン(またはサブドメイン)を共有する必要があります。
異なるドメイン間でSSEを使用したい場合は、ヘッダー定義を可能にするEventSourceポリフィルを検討してください。https://github.com/Yaffle/EventSourceで利用可能なオプションがあります。
まず、バックエンドでクライアント用のJWSを生成します。例はbackend/subscriberJwsGenerator.jsにあります。サブスクライバーJWTを入力し、node subscriberJwsGenerator.jsを使用してスクリプトを実行します。
次に、フロントエンドのファイルfrontend/subscriberWithAuthorization.htmlで、エンドポイントと生成されたJWSを入力します。ブラウザでファイルを開くと、Mercure-hubが認証付きで動作します!
Stackheroダッシュボードで「匿名サブスクライバーを許可」をオフにするのを忘れないでください!