diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..936415f --- /dev/null +++ b/deploy.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +# 服务器配置 +SERVER="123.57.93.143" +USER="root" +REMOTE_DIR="/home/media-front" +BACKUP_DIR="$REMOTE_DIR/backup" +TIMESTAMP=$(date +%Y%m%d_%H%M%S) + +# 本地构建 +echo "Building project..." +npm run build + +# 检查构建是否成功 +if [ ! -d "dist" ]; then + echo "Build failed! dist directory not found." + exit 1 +fi + +# 创建部署包 +echo "Creating deployment package..." +tar -czf dist.tar.gz dist/ + +# 创建远程目录 +echo "Creating remote directories..." +ssh $USER@$SERVER "mkdir -p $REMOTE_DIR $BACKUP_DIR" + +# 如果远程目录存在部署文件,先备份 +echo "Backing up existing deployment..." +ssh $USER@$SERVER "if [ -d $REMOTE_DIR/dist ]; then \ + tar -czf $BACKUP_DIR/dist_backup_$TIMESTAMP.tar.gz $REMOTE_DIR/dist && \ + rm -rf $REMOTE_DIR/dist; \ +fi" + +# 上传新的部署包 +echo "Uploading new deployment package..." +scp dist.tar.gz $USER@$SERVER:$REMOTE_DIR/ + +# 解压部署包 +echo "Extracting deployment package..." +ssh $USER@$SERVER "cd $REMOTE_DIR && \ + tar -xzf dist.tar.gz && \ + rm dist.tar.gz" + +# 清理本地部署包 +echo "Cleaning up local deployment package..." +rm dist.tar.gz + +echo "Deployment completed successfully!" +echo "Your application is now deployed to $REMOTE_DIR/dist" +echo "A backup has been created at $BACKUP_DIR/dist_backup_$TIMESTAMP.tar.gz" + +# 清理旧的备份(保留最近10个) +echo "Cleaning up old backups..." +ssh $USER@$SERVER "cd $BACKUP_DIR && ls -t dist_backup_*.tar.gz | tail -n +11 | xargs rm -f 2>/dev/null || true" \ No newline at end of file diff --git a/src/App.svelte b/src/App.svelte index c65b8e4..99e4976 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -49,17 +49,9 @@ { id: 'other', label: '其他' } ]; - // 添加 SHA-256 加密函数 - async function sha256(message: string): Promise { - if (typeof window !== 'undefined' && window.crypto?.subtle) { - const hashBuffer = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(message)); - const hashArray = Array.from(new Uint8Array(hashBuffer)); - return hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); - } else { - // Node.js 环境下用 Node 原生 crypto 模块 - const { createHash } = await import('crypto'); - return createHash('sha256').update(message).digest('hex'); - } + // 添加简单的Base64编码函数 + function encodePassword(message: string): string { + return btoa(message); } // 初始化函数:检查认证状态 @@ -131,13 +123,13 @@ async function handleLogin(e: Event) { e.preventDefault(); try { - // 对密码进行加密 - const hashedPassword = await sha256(password); + // 对密码进行简单编码 + const encodedPassword = encodePassword(password); // 使用验证接口验证登录 const response = await request.post>('/user/login', { username, - password: hashedPassword + password: encodedPassword }); if (response.data.code === 200) {