From 057008872261cea071a00aa2037cbf1deaf64d80 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 11 Aug 2026 16:27:26 +0000 Subject: [PATCH] =?UTF-8?q?feat(tiktok):=20servir=20le=20fichier=20de=20v?= =?UTF-8?q?=C3=A9rification=20du=20domaine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TikTok exige de prouver la propriété du domaine ("URL properties") avant d'autoriser la Content Posting API, en servant un fichier à la racine du site. Le dossier public-root/ est exposé publiquement à la racine du domaine et monté avant le catch-all du frontend. Y déposer un fichier suffit : pas de modification de code ni de reconstruction du client, ce qui couvre aussi les prochaines vérifications (autre domaine, Google, Meta). Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_018uUPZ1GNpEkYB1dpXHYPek --- public-root/README.md | 11 +++++++++++ .../tiktokHjd5evuj6TppdUaAJmwmDg34f1fs0qMs.txt | 1 + server/routes.ts | 12 +++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 public-root/README.md create mode 100644 public-root/tiktokHjd5evuj6TppdUaAJmwmDg34f1fs0qMs.txt diff --git a/public-root/README.md b/public-root/README.md new file mode 100644 index 0000000..e7c5420 --- /dev/null +++ b/public-root/README.md @@ -0,0 +1,11 @@ +# Fichiers servis à la racine du domaine + +Le contenu de ce dossier est exposé publiquement, sans authentification, à la +racine du domaine (`https:///`). + +Il sert aux fichiers de vérification de propriété du domaine réclamés par les +plateformes : TikTok (`tiktok.txt`, requis par « URL properties » avant de +pouvoir utiliser la Content Posting API), Google Search Console, Meta, etc. + +Pour en ajouter un, il suffit de déposer le fichier ici — aucune modification de +code n'est nécessaire, et le fichier est servi sans reconstruire le frontend. diff --git a/public-root/tiktokHjd5evuj6TppdUaAJmwmDg34f1fs0qMs.txt b/public-root/tiktokHjd5evuj6TppdUaAJmwmDg34f1fs0qMs.txt new file mode 100644 index 0000000..d2c9262 --- /dev/null +++ b/public-root/tiktokHjd5evuj6TppdUaAJmwmDg34f1fs0qMs.txt @@ -0,0 +1 @@ +tiktok-developers-site-verification=Hjd5evuj6TppdUaAJmwmDg34f1fs0qMs \ No newline at end of file diff --git a/server/routes.ts b/server/routes.ts index 97804f0..dabb47e 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -1,7 +1,8 @@ -import type { Express, Request, Response, NextFunction } from "express"; +import express, { type Express, type Request, type Response, type NextFunction } from "express"; import { createServer, type Server } from "http"; import fs from "fs"; import os from "os"; +import path from "path"; import { storage } from "./storage"; import { db, pool } from "./db"; import multer from "multer"; @@ -460,6 +461,15 @@ export async function registerRoutes(app: Express): Promise { // Analytics Routes app.use("/api/analytics", requireAuth, analyticsRouter); + // Fichiers servis à la racine du domaine, sans authentification : vérification + // de propriété du domaine par TikTok ("URL properties"), Google, Meta… + // Monté ici pour être servi avant le catch-all du frontend, et sans dépendre + // d'une reconstruction du client. + app.use(express.static(path.resolve(import.meta.dirname, "..", "public-root"), { + dotfiles: "ignore", + index: false, + })); + // Pages légales publiques (exigées par TikTok pour l'audit de l'application) app.use(legalRouter);