# 小红书MCP 登录系统使用指南

## 🎯 功能特性

### 解决的核心问题
- **登录状态经常失效**：需要频繁重新扫码登录
- **浏览器重启过于频繁**：导致会话中断
- **缺乏自动恢复机制**：每次都需要手动处理

### 智能登录管理
- **自动恢复**：优先尝试从保存的状态恢复登录
- **无缝体验**：其他功能自动检查并恢复登录状态
- **持久化存储**：登录状态保持30天
- **安全机制**：Cookie自动备份，状态验证

## 🚀 使用方法

### 首次登录
```python
# 通过MCP工具调用
await login()
```
- 会自动打开浏览器并引导你完成扫码登录
- 登录成功后自动保存状态

### 日常使用
```python
# 直接使用其他功能，无需先登录
await search_notes("美妆")        # 自动检查和恢复登录
await publish_note(...)           # 自动检查和恢复登录
await post_comment(...)           # 自动检查和恢复登录
```

### 重新登录（极少需要）
```python
await login()  # 会自动清理旧状态并重新登录
```

## 🔧 技术实现

### 智能登录流程
```
登录请求 → 尝试自动恢复 → 成功✅ | 失败❌ → 引导手动登录 → 保存状态
```

### 持久化配置
- **浏览器数据目录**：`./browser_data/`（项目根目录）
- **登录状态文件**：`./data/login_state.json`
- **Cookie备份**：`./data/cookie_backups/`

### 持久化策略
- **状态保持**：最长30天
- **状态检查**：每5分钟自动检查一次
- **Cookie备份**：每30分钟自动备份
- **重启限制**：每小时最多重启浏览器3次

## 🛡️ 安全特性

### 频率限制
- 每小时最多重启浏览器3次
- 防止过度资源消耗

### 状态验证
- 定期验证登录状态的有效性
- 自动清理过期状态

### 备份机制
- 自动备份Cookie数据
- 保留最近5个备份文件

## 📂 文件结构

```
redbook_mcp/
├── browser_data/           # 浏览器数据目录（持久化）
│   ├── Default/
│   │   ├── Cookies         # 登录Cookie
│   │   ├── Local Storage/  # 本地存储
│   │   └── ...
├── data/
│   ├── login_state.json    # 登录状态文件
│   ├── cookie_backups/     # Cookie备份目录
│   └── logs/               # 日志文件
└── src/
    └── infrastructure/
        └── browser/
            ├── browser.py       # 浏览器管理器
            └── login_manager.py # 登录状态管理器
```

## ⚠️ 注意事项

### 数据目录保护
- 不要删除 `browser_data/` 目录
- 这里保存了你的登录信息

### 状态过期
- 登录状态默认保持30天
- 过期后需要重新扫码登录

### 多账号使用
- 当前设计为单账号使用
- 如需切换账号，请先清除登录状态

## 🔧 故障排除

### 登录问题
```python
# 如果遇到任何登录相关问题，只需重新登录
await login()
```
系统会自动：
- 清理旧的登录状态
- 重新建立连接
- 保存新的登录状态

### 浏览器启动问题
- 关闭其他Chrome实例
- 重启程序后重试
- 必要时重启计算机

## 📈 效果对比

### 优化前
- ❌ 每次使用都可能需要扫码
- ❌ 浏览器频繁重启（30秒检查）
- ❌ 需要手动管理登录状态
- ❌ 多个状态管理工具

### 优化后  
- ✅ 30天内自动保持登录
- ✅ 浏览器稳定运行（5分钟检查）
- ✅ 全自动状态管理
- ✅ 专注核心功能

## 🎉 核心优势

1. **减少90%的登录操作**：大部分时候都能自动恢复
2. **提高系统稳定性**：减少不必要的浏览器重启
3. **简化用户操作**：专注于小红书核心功能
4. **智能错误恢复**：自动处理各种异常情况

现在你可以专注于小红书的核心操作，登录问题已经彻底解决！ 