// 페이지 로드 시 인증 확인 window.onload = function() { const urlParams = new URLSearchParams(window.location.search); const urlToken = urlParams.get('token'); console.log('URL에서 받은 토큰:', urlToken); // 부모 창에 토큰 요청 window.opener.postMessage('requestToken', '*'); // 부모 창으로부터 토큰 받기 window.addEventListener('message', function(event) { // 메인 페이지의 도메인 확인 (실제 도메인으로 변경 필요) if (event.data && event.data.token) { const parentToken = event.data.token; console.log('부모 창에서 받은 토큰:', parentToken); // 토큰 비교 if (urlToken === parentToken) { console.log('인증 성공: STT 서비스 표시'); document.getElementById('mainContainer').style.display = 'block'; document.getElementById('unauthorizedMessage').style.display = 'none'; } else { console.log('인증 실패: 토큰 불일치'); document.getElementById('mainContainer').style.display = 'none'; document.getElementById('unauthorizedMessage').style.display = 'block'; } } }); }; async function processFile() { const fileInput = document.getElementById('audioFile'); const loadingDiv = document.getElementById('loading'); const resultDiv = document.getElementById('result'); const copyButton = document.getElementById('copyButton'); if (!fileInput.files.length) { alert('파일을 선택해주세요.'); return; } const formData = new FormData(); formData.append('file', fileInput.files[0]); loadingDiv.style.display = 'block'; resultDiv.textContent = ''; copyButton.style.display = 'none'; try { const response = await fetch('/process', { method: 'POST', body: formData }); const data = await response.json(); if (response.ok) { console.log('변환 결과:', data.result); resultDiv.textContent = data.result.join('\n'); copyButton.style.display = 'inline-block'; // 결과가 있을 때만 복사 버튼 표시 } else { throw new Error(data.error); } } catch (error) { console.error('에러:', error); resultDiv.textContent = `에러가 발생했습니다: ${error.message}`; } finally { loadingDiv.style.display = 'none'; } } async function copyResult() { const resultDiv = document.getElementById('result'); try { if (navigator.clipboard && navigator.clipboard.writeText) { await navigator.clipboard.writeText(resultDiv.textContent); } else { // 대체 복사 방법 const textarea = document.createElement('textarea'); textarea.value = resultDiv.textContent; document.body.appendChild(textarea); textarea.select(); document.execCommand('copy'); document.body.removeChild(textarea); } alert('클립보드에 복사되었습니다.'); } catch (err) { console.error('복사 실패:', err); alert('복사에 실패했습니다.'); } }