-
Notifications
You must be signed in to change notification settings - Fork 231
Open
Description
// Exemplo de componente de download seguro (React)
import { useState, useEffect } from 'react';
export default function TrackDownload({ trackId }) {
const [downloadUrl, setDownloadUrl] = useState('');
useEffect(() => {
// Gera link temporário via API segura (ex: /api/generate-download-url)
fetch(/api/generate-download-url?track_id=${trackId})
.then(res => res.json())
.then(data => setDownloadUrl(data.url));
}, [trackId]);
return (
Baixe a pista com segurança
{downloadUrl ? (
<a
href={downloadUrl}
download
className="btn-primary"
onClick={() => logDownload(trackId)} // Registra uso para análise
>
Baixar (Link válido por 24h)
) : (
Carregando...
)}
);
}
function logDownload(trackId) {
fetch('/api/log-download', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ track_id: trackId, user_id: getCurrentUserId() })
});
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels