5.2 KiB
Executable File
5.2 KiB
Executable File
用户系统使用指南
新功能概述
已为 Meow Embedded Music Server 添加完整的用户系统,支持:
✨ 核心功能
-
用户认证
- 用户注册(用户名 + 邮箱 + 密码)
- 用户登录
- 会话管理(基于Token)
- 安全的密码加密存储
-
个人歌单管理
- 每个用户独立的"我喜欢"歌单
- 创建自定义歌单
- 添加/删除歌曲到歌单
- 删除自定义歌单
-
音乐搜索和播放
- 在线搜索音乐
- 实时播放音乐
- 添加到个人歌单
- 查看歌单歌曲列表
快速开始
1. 安装依赖
go mod tidy
2. 启动服务器
go run .
3. 访问应用
打开浏览器访问:
- 新版应用(推荐):
http://localhost:2233/app - 旧版界面(兼容):
http://localhost:2233/
API 文档
认证相关
注册
POST /api/auth/register
Content-Type: application/json
{
"username": "testuser",
"email": "test@example.com",
"password": "password123"
}
响应:
{
"token": "session_token_here",
"user": {
"id": "user_id",
"username": "testuser",
"email": "test@example.com",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
}
登录
POST /api/auth/login
Content-Type: application/json
{
"username": "testuser",
"password": "password123"
}
登出
POST /api/auth/logout
Authorization: Bearer <token>
获取当前用户信息
GET /api/auth/me
Authorization: Bearer <token>
歌单管理(需要认证)
获取用户所有歌单
GET /api/user/playlists
Authorization: Bearer <token>
创建歌单
POST /api/user/playlists/create
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "我的歌单",
"description": "这是我的歌单描述"
}
添加歌曲到歌单
POST /api/user/playlists/add-song?playlist_id=<playlist_id>
Authorization: Bearer <token>
Content-Type: application/json
{
"title": "歌曲名",
"artist": "歌手名",
"audio_url": "/path/to/audio",
"audio_full_url": "/path/to/full/audio",
"cover_url": "/path/to/cover",
"lyric_url": "/path/to/lyric",
"duration": 240
}
从歌单移除歌曲
DELETE /api/user/playlists/remove-song?playlist_id=<playlist_id>&title=<song_title>&artist=<artist_name>
Authorization: Bearer <token>
删除歌单
DELETE /api/user/playlists/delete?playlist_id=<playlist_id>
Authorization: Bearer <token>
音乐搜索
GET /stream_pcm?song=<歌曲名>&singer=<歌手名>
数据存储
用户数据存储在以下文件中:
./files/users.json- 用户账户信息./files/user_playlists.json- 用户歌单数据./files/playlists.json- 旧版全局歌单(向后兼容)
功能特性
🔒 安全性
- 密码使用 bcrypt 加密存储
- 基于 Token 的会话管理
- API 请求认证保护
📱 响应式设计
- 现代化 UI 界面
- 支持桌面和移动设备
- 流畅的用户体验
🎵 音乐功能
- 实时搜索音乐
- 在线播放
- 个人收藏管理
- 自定义歌单
🔄 向后兼容
- 保留旧版 API 端点
- 支持旧版界面访问
- 平滑升级路径
使用示例
JavaScript 示例
// 注册用户
const registerResponse = await fetch('/api/auth/register', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
username: 'myuser',
email: 'user@example.com',
password: 'securepass123'
})
});
const { token, user } = await registerResponse.json();
// 获取歌单
const playlistsResponse = await fetch('/api/user/playlists', {
headers: { 'Authorization': `Bearer ${token}` }
});
const playlists = await playlistsResponse.json();
// 搜索音乐
const musicResponse = await fetch('/stream_pcm?song=告白气球&singer=周杰伦');
const song = await musicResponse.json();
// 添加到歌单
await fetch(`/api/user/playlists/add-song?playlist_id=${playlists[0].id}`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(song)
});
故障排除
问题:无法登录
- 检查用户名和密码是否正确
- 确认用户已注册
- 检查服务器日志
问题:Token 过期
- 重新登录获取新 Token
- Token 存储在 localStorage 中,清除浏览器缓存后需要重新登录
问题:添加歌曲失败
- 确认已登录并有有效 Token
- 检查歌单 ID 是否正确
- 确认歌曲信息完整
开发者信息
- 后端框架:Go (Golang)
- 前端框架:React 18 + TailwindCSS
- 认证方式:Token-based
- 数据存储:JSON 文件
更新日志
v2.0.0 (当前版本)
- ✅ 添加用户注册和登录功能
- ✅ 实现个人歌单管理
- ✅ 创建现代化 Web 界面
- ✅ 支持在线音乐搜索和播放
- ✅ 向后兼容旧版 API
享受您的音乐之旅! 🎵