client-web
:Web 项目,后续考虑打包到 desktopclient-extension
:浏览器插件,使用 plasmo 开发,考虑支持 Chrome、Edgewww-gpt
:对接 openai 接口www-main
:项目提供的其他功能(用户管理、文档管理),使用 Nest 开发
- ✅
聊天窗口
:接入 ChatGPT 官方功能 - ✅
注册登录
:用户登录注册,管理笔记 - ✅
文档保存
:一键保存高质量的回答,提供分类、标签功能 - ☑️
后台管理
:管理用户笔记,增删改查、导出下载(JSON、Markdown 等) - ☑️
更多功能
:接入更多的 GPT 模型,提供不同领域的专业性的功能
- ChatGPT 的回答只保存本地
- 手动保存的文档存储到云端
优先级 | 注册 | 登录 | 描述 |
---|---|---|---|
1 | 邮箱 + 账号/密码 | 账号/密码 | 个人邮箱发送邮件容易被判定为垃圾邮件 |
2 | OAuth | OAuth | 推荐,但是国内微信等平台需要企业认证,个人可以使用 GitHub 等平台认证 |
3 | 短信 | 短信 | 要产生费用,国内需要域名备案 |
备注:
- 需要防止恶意注册,因此必须使用邮箱、OAuth、短信等认证用户身份,且对注册次数要限制
- 用户身份识别,选择 Cookie/Session 或 AccessToken 的方式
注册步骤:
- Client:验证 username、email 是否可用,不允许重复的 username、email
- Server:发送邮箱验证码
- Client:输入邮箱验证码完成注册
- 注册成功后自动登录、签发 token、重定向页面
- 备注:
- 验证码需要绑定邮箱、并设置有效时间(如 10 分钟),存储在缓存/数据库中
- 验证码使用后需要删除
- 设置一段时间内只能发送一次验证码
登录步骤:
- username/email + password 登录
- 防止恶意登录,设置登录限制
- 忘记密码功能:使用邮箱重置
- 修改密码功能:登录后修改
不需要处理用户注册,手机号码作为用户的唯一标识。
登录:
- phoneNumber + code
- 防止短信盗刷