import crypto from 'node:crypto' /** * Tokens check-in : 32 bytes random → base64url. On stocke le hash * SHA-256 en DB (CheckinTask.token_hash). Pas de signature HMAC : le * token est purement opaque, sa "signature" c'est sa présence en DB. */ export function generateCheckinToken(): { plain: string; hashed: string } { const plain = crypto.randomBytes(32).toString('base64url') const hashed = crypto.createHash('sha256').update(plain).digest('hex') return { plain, hashed } } export function hashCheckinToken(plain: string): string { return crypto.createHash('sha256').update(plain).digest('hex') }