引子:为什么需要用户认证?
openbb-hka是一个提供A股和港股数据分析的OpenBB Workspace后端。如果将其部署在云服务器上,用户认证便成为必须实现的功能,否则任何人都可以无限制访问,这将带来严重的安全隐患。
目前在OpenBB Workspace中添加后端时,我们需要手动配置用户认证机制。具体操作是:将生成的JWT token填入OpenBB Workspace的后端管理页面。如下图所示:

那么,这个JWT token从何而来?
理想的流程应该是:
- 用户通过注册页面,创建openbb-hka账号(与OpenBB Workspace账号独立)
- 用户登录openbb-hka后端系统
- 登录成功后,系统生成JWT token作为认证凭证
- 在OpenBB Workspace中配置新的后端,使用刚获取的JWT token
当前openbb-hka版本跳过了前3步,直接使用预设token是因为OpenBB后端的官方代码就是这样实现的。如果没有相应的用户界面,大多数人可能并不知道怎么生成自己的JWT Token。
为实现完整认证流程,我们使用三种AI工具来开发1-3步功能。
AI工具选型:为什么是这三个?
我们选择了目前国内外流行的三款免费AI开发工具:
- Trae - 字节跳动推出的AI集成开发环境,具备Prompt优化功能
- Qoder - 阿里巴巴推出的智能编程平台
- GitHub Copilot - 由GitHub和OpenAI联合开发的业界标杆
前端技术选型延续OpenBB官方标准:React 18 + TypeScript + Vite + Radix UI + Tailwind CSS,确保与OpenBB Workspace界面风格一致。
需求
下面是用来实现用户注册,认证以及JWT token生成的需求。
我们正在对现有的OpenBB Workspace后端 openbb-hka进行扩展——该后端是一个基于Python/FastAPI的系统,目前尚未具备用户认证功能,扩展内容为添加登录和注册功能。拟采用的方案包括开发一个独立的前端来处理用户认证,而新的后端服务将直接集成到当前的OpenBB Workspace后端 openbb-hka中。
前端需求
- 开发为渐进式Web应用(Progressive Web App,PWA),需兼容桌面端与移动端环境。
- 使用React 18框架,搭配TypeScript语言,并以Vite作为构建工具。
- 采用与OpenBB Workspace一致的UI主题(视觉参考可查阅现有的Plotly组件和Tables组件)。
- 使用Radix UI组件库和Tailwind CSS进行样式开发,需支持亮色/暗色主题切换。
- 未来的功能增强将包含与OpenBB Workspace类似的特性,例如图表和表格展示功能。
后端需求
- 基于Python/FastAPI构建。
- 初始开发阶段使用SQLite数据库,未来可能迁移至PostgreSQL数据库。
- 实现认证/授权功能,支持以下方式:
- 用户名-密码登录
- 微信登录
- 生成JWT令牌,用于OpenBB Workspace后端的身份验证
- 提供登录后页面,用户可在此页面查看并复制JWT令牌,以便在OpenBB Workspace中使用。
功能实现及相关代码
基于上述需求,我分别用AI工具Trae, Qoder和GitHub Copilot生成了相关的代码。总的来说,过程还是相当顺利的,目前的AI工具,对这个中等复杂度的需求,基本都能比较顺利的完成任务。








