Docs · Guides

Localisation des visiteurs.

Sachez de quel pays vient une requête, sans service externe. Activez-la pour un projet et chaque requête arrive à votre application avec le pays, la région et le mode de consentement aux témoins du visiteur dans des en-têtes.

L’activer

Paramètres → Localisation des visiteurs du projet. Désactivée tant que vous ne l’activez pas.

Les en-têtes

X-Canner-IP-Country      CA         ISO country code, XX when unknown
X-Canner-IP-Region       QC         subdivision, when known
X-Canner-Consent-Mode    opt-in     opt-in or opt-out

Les mêmes valeurs sont aussi envoyées sous les noms X-Vercel-IP-Country, X-Vercel-IP-Country-Region et CF-IPCountry; le code écrit pour ces hébergeurs fonctionne tel quel. Tout ce qu’un visiteur envoie sous ces noms est remplacé : votre application peut s’y fier.

X-Canner-Consent-Mode vaut opt-in pour l’UE et l’EEE, le Royaume-Uni, la Suisse, le Canada, le Brésil et la Corée du Sud, ainsi que pour tout visiteur que nous ne pouvons pas situer. Ailleurs, il vaut opt-out. C’est un point de départ, pas un avis juridique : validez-le avec les règles qui vous s’appliquent.

import { headers } from "next/headers";

const h = await headers();
const mode = h.get("x-canner-consent-mode") ?? "opt-in"; // opt-in when the header is missing
app.use((req, res, next) => {
  res.locals.consent = req.get("x-canner-consent-mode") ?? "opt-in";
  next();
});

À savoir

  • La position vient de l’adresse IP du visiteur : avec un VPN, c’est le pays du VPN. Le pays est juste la plupart du temps; ne l’utilisez pas pour bloquer l’accès.
  • La recherche se fait sur nos serveurs, dans une base locale. L’adresse n’est pas conservée et rien n’est envoyé à un tiers.
  • Derrière le proxy de Cloudflare, le pays de Cloudflare est utilisé. Les requêtes qui prétendent venir de Cloudflare d’ailleurs sont ignorées.
  • Un projet où elle est activée n’est pas mis en cache par le cache de Canner : la page d’un pays n’est jamais servie à un autre.
  • Si votre application réagit déjà aux en-têtes cf-ipcountry ou x-vercel-*, vérifiez-la avant d’activer.
  • En développement local, il n’y a pas d’en-têtes : prenez opt-in par défaut.