Mercure-Hub: Autenticação de subscritores

Esta documentação faz parte do guia Introdução. Consulte o guia completo aqui: Como começar com Mercure-hub.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero disponibiliza um serviço Mercure-Hub cloud totalmente gerido, concebido para simplificar e garantir a entrega de dados em tempo real. Beneficia de:

  • Pedidos e tamanhos de mensagens ilimitados para máxima flexibilidade.
  • Um domínio personalizado com HTTPS integrado (por exemplo, https://real-time.sua-empresa.com).
  • Atualizações com um clique para manter o seu hub sempre atualizado sem complicações.
  • Elevada performance e forte segurança numa infraestrutura privada e dedicada.
  • Várias regiões disponíveis: 🇪🇺 Europa e 🇺🇸 USA para entrega de baixa latência.

Comece rapidamente: bastam 5 minutos para lançar o seu ambiente de Mercure-Hub cloud hosting e começar a enviar atualizações em tempo real para as suas aplicações.

Nos exemplos anteriores, os subscritores não estavam autenticados e precisava de permitir "subscritores anónimos" no painel de controlo do Stackhero.

Para autenticar subscritores, gera um JWS (JSON Web Signature) usando a 'Subscriber JWT key' definida no painel de controlo do Stackhero. O JWS é então enviado usando cookies do navegador ou o cabeçalho authorization.

Dado que a API Server-Sent Events não suporta definições de cabeçalhos personalizados, os cookies devem ser usados. No entanto, usar cookies implica que o seu servidor Mercure-hub e o cliente precisam de partilhar o mesmo domínio (ou subdomínio).

Se desejar usar SSE entre diferentes domínios, considere um polyfill EventSource que permita definições de cabeçalhos. Uma opção está disponível em https://github.com/Yaffle/EventSource.

Primeiro, gere um JWS para o seu cliente no seu back end. Um exemplo está disponível em backend/subscriberJwsGenerator.js. Basta inserir o seu JWT de subscritor e executar o script usando node subscriberJwsGenerator.js.

Depois, no front end, no ficheiro frontend/subscriberWithAuthorization.html, preencha o seu endpoint e o JWS gerado. Abra o ficheiro no seu navegador e o Mercure-hub funcionará agora com autenticação!

Não se esqueça de desmarcar "Permitir subscritores anónimos" no painel de controlo do Stackhero!