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!