VNC WebSocket 인증 문제 해결 및 사용자 포털 계획 추가

- Proxmox VNC 티켓 생성 시 패스워드 생성 활성화
- VNC 세션에 생성된 패스워드 저장 및 전달
- noVNC 클라이언트에서 실제 패스워드 사용으로 인증 문제 해결
- ES6 모듈 방식으로 noVNC 라이브러리 로드
- HTML 엔티티 디코딩으로 WebSocket URL 문제 해결
- PharmQ 사용자 포털 서비스 계획서 추가 (KakaoTalk SSO, TossPayments)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-11 22:56:58 +09:00
parent 2cfe37fd53
commit 895b7a8ee7
4 changed files with 452 additions and 27 deletions

View File

@@ -547,6 +547,7 @@ def create_app(config_name=None):
'vmid': vmid,
'vm_name': vm_name,
'websocket_url': vnc_data['websocket_url'],
'password': vnc_data.get('password', ''), # VNC 패스워드 추가
'created_at': datetime.now()
}
@@ -571,16 +572,13 @@ def create_app(config_name=None):
session_data = vnc_sessions[session_id]
# Proxmox 기본 noVNC URL로 리다이렉트
proxmox_vnc_url = f"https://{PROXMOX_HOST}:443/?console=kvm&vmid={session_data['vmid']}&node={session_data['node']}"
# 리다이렉트 페이지 표시
return render_template('vnc_redirect.html',
# 직접 WebSocket VNC 연결 (noVNC)
return render_template('vnc_console.html',
vm_name=session_data['vm_name'],
vmid=session_data['vmid'],
node=session_data['node'],
proxmox_url=proxmox_vnc_url,
host=PROXMOX_HOST)
websocket_url=session_data['websocket_url'],
password=session_data.get('password', ''))
except Exception as e:
print(f"❌ VNC 콘솔 오류: {e}")