Referência de endpoint e resposta
POST/api/shop/sessionmint — segredo Bearer
DELETE/api/shop/session/:tokenrevogar – segredo Bearer
Nesta demonstração, o mint é efetuado pelo proxy nos caminhos acima. Em produção, a sessão é criada no núcleo ADITUS — o contrato é idêntico. Ambas as chamadas são efetuadas entre servidores: o back-end autentica-se com o segredo mint do cliente (gerado na consola de administração ADITUS), utilizado como token Bearer. Um mint por login é o padrão habitual; o navegador vê apenas o token resultante.
Pode experimentar este fluxo exato com as suas próprias credenciais notestador de integração — criar a sessão, efetuar o mount e percorrer o fluxo.
Criar uma sessão — pedido
CabeçalhoValorSignificado
AuthorizationBearer <mint-secret>O segredo mint do cliente, gerado na consola de administração ADITUS. Deve permanecer no servidor — nunca pode ser enviado para um navegador ou incluído num bundle da aplicação.
Content-Typeapplication/jsonO corpo é um objeto JSON.
Campo do bodyTipoSignificado
publicKeystring · obrigatórioA chave publicável PARA a qual a sessão é criada. Tem de ser a mesma publicKey usada no mount do micro-frontend — todas as chamadas posteriores à loja são validadas em relação a ela (403 em caso de incompatibilidade). O segredo Bearer tem de pertencer ao cliente desta chave.
emailstring · obrigatórioO utilizador da loja em nome do qual a sessão atua. Obtenha-o a partir da SUA sessão autenticada no servidor (cookie de login/SSO ou JWT) — nunca a partir do pedido do navegador, pois um visitante poderia obter a sessão de outra pessoa. OMITA este campo para criar uma sessão ANÓNIMA: o visitante pode navegar e preencher o carrinho, mas o micro-frontend impede que avance até o callback onUserRequired fornecer uma sessão associada a um utilizador (consulte o fluxo de utilizador opcional). Um email presente mas malformado continua a ser rejeitado (400).
externalUserIdstring · obrigatórioO identificador de utilizador do seu sistema, guardado com a sessão como metadado (útil para suporte e correlação de registos). A ADITUS não o interpreta.
ttlSecondsstring · obrigatórioDuração da sessão em segundos. Por predefinição, 20 minutos, até ao máximo de 24 horas. Quando expira, as chamadas à loja devolvem 401 session_expired — crie então um novo token (por exemplo, através do hook onSessionExpired).
eventSlugstring · obrigatórioDefine o PONTO DE ENTRADA do percurso no servidor: quando presente, o micro-frontend começa diretamente na seleção de artigos deste evento; quando omitido, começa na vista geral dos eventos. Como faz parte da sessão criada, não pode ser manipulado no navegador. Carateres inválidos devolvem 400 invalid_event_slug; um slug sem correspondência com um evento em direto faz regressar à vista geral dos eventos.
Criar uma sessão — resposta (200)
CampoTipoSignificado
sessionTokenstringToken opaco (sess_…). Envie-o para o navegador e passe-o a mount() como sessionToken; o micro-frontend envia-o como X-Aditus-Session em todas as chamadas à loja. Não contém dados do utilizador e não pode ser descodificado.
expiresAtnumberValidade como timestamp Unix em milissegundos. Este valor é meramente informativo para efeitos de agendamento — o micro-frontend reage autonomamente ao 401.
Revogar uma sessão
DELETE /api/shop/session/:token com o mesmo segredo Bearer — o segredo tem de pertencer ao cliente para o qual a sessão foi criada. Chame este endpoint ao terminar sessão para invalidar o token juntamente com a sessão do seu sistema. Resposta: { "revoked": true } (ou false se a sessão já tiver expirado). A revogação é idempotente e pode ser efetuada em modo fire-and-forget.
Erros são explícitos
StatusCódigoSignificado
503session_not_configuredA configuração de sessões de incorporação não está disponível para este cliente.
401unauthorizedO segredo de criação de sessão é inválido ou está em falta.
400invalid_public_keyA chave pública indicada é inválida.
400invalid_emailO endereço de correio eletrónico indicado é inválido.
400invalid_tokenO token de sessão indicado é inválido.
429rate_limitedForam efetuados demasiados pedidos. Tente novamente dentro de momentos.
403public_key_invalidA chave pública indicada tem um formato inválido.
403public_key_unknownA chave pública indicada não é reconhecida.
403public_key_origin_unresolvedNão foi possível determinar a origem deste pedido.
403public_key_domain_not_allowedO domínio deste pedido não está autorizado para esta chave pública.
401invalid_sessionA sessão indicada é inválida.
401session_expiredA sessão indicada expirou.
403session_requires_public_keyEsta sessão requer uma chave pública.
403session_key_mismatchA chave pública não corresponde à sessão.
403anonymous_sessionEsta operação não está disponível para uma sessão anónima.