Mode Server-Verify
Le mode server-verify permet de ne débloquer l'UI qu'après confirmation backend partenaire.
Quand l'utiliser
Utilisez ce mode si votre application doit:
- créer une session serveur avant de marquer l'utilisateur comme vérifié
- exécuter des contrôles métier après
grant_code(fraude, droits, etc.) - éviter un déverrouillage frontend basé uniquement sur le retour navigateur
Activation
<script src="https://widget-app.zykay.com/v4/loader.min.js"
data-partner-id="pk_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
data-success-path="/verified"
data-server-verify="true"
data-server-verify-endpoint="/api/zykay/server-verify"
data-server-verify-timeout="30"></script>Contrat exact du loader v4
Quand grant_code est détecté dans l'URL:
- Le loader émet
zykay:grant-receivedavec{ grantCode } - Le loader n'émet pas
zykay:verifieden modeserver-verify - Le loader poll
data-server-verify-endpointenGETtoutes les 1s (credentials: 'include') - Le loader attend une réponse JSON avec
{"verified": true} - Si reçu, le loader émet
zykay:verified-serveret passe en succès - Si timeout atteint (défaut 30s), erreur
SERVER_VERIFY_TIMEOUT
Contrat de votre endpoint partenaire
Endpoint: GET /api/zykay/server-verify
200 {"verified": false}: traitement backend encore en cours200 {"verified": true}: vérification confirmée, le loader débloque
Exemple minimal:
import { NextResponse } from 'next/server'
export async function GET() {
const verified = false // Lire votre état de session applicative
return NextResponse.json(
{ verified },
{
headers: {
'Cache-Control': 'no-store',
},
}
)
}Flux recommandé (frontend + backend)
window.addEventListener('zykay:grant-received', async (event) => {
const grantCode = event.detail?.grantCode
if (!grantCode) return
// 1) Échange grant_code côté backend
await fetch('/api/zykay/exchange', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ grant_code: grantCode }),
credentials: 'include',
})
// 2) Le backend marque la session comme "verified"
// 3) /api/zykay/server-verify retournera {"verified": true}
})Mode manuel (sans endpoint)
Si vous n'utilisez pas data-server-verify-endpoint, vous pouvez confirmer manuellement:
window.__ZYKAY_WIDGET_V4__?.confirmServerVerified()Ce mode est utile si votre app pilote elle-même le cycle de confirmation.