Riferimento all'endpoint e alla risposta
POST/api/shop/sessionmint — Bearer secret
DELETE/api/shop/session/:tokenrevoke — Bearer secret
In questa demo, il mint passa attraverso il proxy agli endpoint indicati sopra. In produzione la sessione viene generata nel core ADITUS, con lo stesso contratto. Entrambe le chiamate sono server-to-server: il backend si autentica con il mint secret del client, generato nella console di amministrazione ADITUS, come Bearer token. Una richiesta di mint per ogni login è il modello normale; il browser vede soltanto il token risultante.
Puoi provare questo flusso esatto con le tue credenziali nel filetester di integrazione — mint, mount e percorri il flusso.
Coniare una sessione: richiesta
IntestazioneValoreSenso
AuthorizationBearer <mint-secret>Il mint secret del tuo client, generato nella console di amministrazione ADITUS. Deve restare esclusivamente lato server e non deve mai essere incluso nel browser o nel bundle dell'app.
Content-Typeapplication/jsonIl corpo è un oggetto JSON.
Campo corporeoTipoSenso
publicKeystring · requiredLa chiave pubblicabile PER LA quale viene coniata la sessione. Deve essere la stessa chiave con cui è montato il micro-frontend: ogni chiamata successiva al negozio viene confrontata con essa (403 in caso di mancata corrispondenza). Il segreto del portatore deve appartenere al client di questa chiave.
emailstring · optionalL'utente del negozio come agisce la sessione. Prendilo dalla TUA sessione del server autenticato (login/cookie SSO o JWT) - mai dalla richiesta del browser, altrimenti un visitatore potrebbe ottenere la sessione di qualcun altro. OMETTIlo per coniare una sessione ANONIMA: il visitatore può navigare e riempire il carrello, ma il micro-frontend blocca il passaggio oltre il carrello finché la richiamata onUserRequired non fornisce una sessione associata all'utente (vedere il flusso utente facoltativo). Un'e-mail presente ma non valida viene comunque rifiutata (400).
externalUserIdstring · optionalIl tuo ID utente, memorizzato con la sessione come metadati (utile per il supporto e la correlazione dei log). Non interpretato da ADITUS.
ttlSecondsnumber · optionalDurata della sessione in secondi. Valore predefinito: 20 minuti, fino a un massimo di 24 ore. Alla scadenza, le chiamate al ticketshop restituiscono 401 session_expired: genera quindi un nuovo token, ad esempio tramite l'hook onSessionExpired.
eventSlugstring · optionalCorregge l'ENTRY POINT lato server del viaggio: impostato, il micro-frontend parte direttamente dalla selezione dell'articolo di questo evento; omesso, inizia dalla panoramica degli eventi. Poiché fa parte della sessione coniata, il browser non può manipolarlo. I caratteri non validi restituiscono 400 invalid_event_slug; uno slug che non si risolve in nessun evento live ricade nella panoramica degli eventi.
Conia una sessione - risposta (200)
CampoTipoSenso
sessionTokenstringToken opaco (sess_…). Consegnatelo al browser e passatelo a mount() come sessionToken; il micro-frontend lo invia come X-Aditus-Session ad ogni chiamata in negozio. Non contiene dati utente e non può essere decodificato.
expiresAtnumberScadenza come timestamp Unix in millisecondi. Puramente informativo per la tua pianificazione: il micro-frontend reagisce da solo al 401.
Revoca una sessione
DELETE /api/shop/session/:token con lo stesso segreto del portatore: il segreto deve appartenere al client per cui è stata coniata la sessione. Chiamalo al logout in modo che il token muoia con la tua sessione. Risposta: { "revocato": true } (o false se la sessione era già scaduta). La revoca è idempotente e sicura da licenziare e dimenticare.
Gli errori sono espliciti
StatoCodiceSenso
503session_not_configuredLe sessioni embed non sono configurate per questo client.
401unauthorizedIl mint secret utilizzato per creare la sessione non è valido o è assente.
400invalid_public_keyLa public key fornita non è valida.
400invalid_emailL'indirizzo email fornito non è valido.
400invalid_tokenIl session token fornito non è valido.
429rate_limitedTroppe richieste. Riprova tra poco.
403public_key_invalidLa public key fornita ha un formato non valido.
403public_key_unknownLa public key fornita non è riconosciuta.
403public_key_origin_unresolvedNon è stato possibile determinare l'origine della richiesta.
403public_key_domain_not_allowedIl dominio della richiesta non è autorizzato per questa public key.
401invalid_sessionLa sessione fornita non è valida.
401session_expiredLa sessione fornita è scaduta.
403session_requires_public_keyQuesta sessione richiede una public key.
403session_key_mismatchLa public key non corrisponde alla sessione.
403anonymous_sessionQuesta operazione non è disponibile per una sessione anonima.