Checkpoint: Correction du lien QR code pour utiliser l'URL publique

Modifications apportées :
- Création de server/_core/appUrl.ts : fonction getAppBaseUrl() pour gérer l'URL de base
- Modification de server/qrCodeGenerator.ts : utilise getAppBaseUrl() au lieu de localhost
- Support de plusieurs variables d'environnement (APP_PUBLIC_URL, DOMAIN_NAME, SERVER_URL)
- Création du guide CONFIGURATION_URL_PUBLIQUE.md avec instructions détaillées
- Création du script configure-public-url.sh pour faciliter la configuration

Configuration requise sur le serveur VPS :
Ajouter dans le fichier .env : APP_PUBLIC_URL=https://formations.itinova.org
Puis redémarrer l'application avec PM2 ou systemd.

Les QR codes générés utiliseront maintenant l'URL publique configurée au lieu de localhost.
This commit is contained in:
Manus
2026-01-11 15:11:24 -05:00
parent 3981d719e3
commit 3922b8fd5b
5 changed files with 168 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
import QRCode from "qrcode";
import { randomBytes } from "crypto";
import { getAppBaseUrl } from "./_core/appUrl";
/**
* Générer un token unique pour le QR code
@@ -15,7 +16,8 @@ export function generateQRToken(): string {
*/
export async function generateQRCodeDataURL(token: string): Promise<string> {
// URL complète pour scanner le QR code
const url = `${process.env.VITE_APP_URL || "http://localhost:3000"}/emargement/${token}`;
const baseUrl = getAppBaseUrl();
const url = `${baseUrl}/emargement/${token}`;
try {
const qrCodeDataURL = await QRCode.toDataURL(url, {
@@ -42,7 +44,8 @@ export async function generateQRCodeDataURL(token: string): Promise<string> {
* @returns Un buffer PNG du QR code
*/
export async function generateQRCodeBuffer(token: string): Promise<Buffer> {
const url = `${process.env.VITE_APP_URL || "http://localhost:3000"}/emargement/${token}`;
const baseUrl = getAppBaseUrl();
const url = `${baseUrl}/emargement/${token}`;
try {
const buffer = await QRCode.toBuffer(url, {